Public
Edited
Apr 26, 2023
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
// Add your code here to do the wrangling steps above!
penguins
.map((d) => ({
species: d.species,
massKilograms: d.body_mass_g / 1000,
billRatio: d.culmen_length_mm / d.culmen_depth_mm
}))
.filter((d) => d.billRatio > 3.5)
Insert cell
Insert cell
penguinData
Type Table, then Shift-Enter. Ctrl-space for more options.

Insert cell
Insert cell
Insert cell
// Find the minimum culmen length in penguinData:
d3.min(penguinData, (d) => d.culmen_length_mm)
Insert cell
Insert cell
// Find the range of culmen lengths in penguinData:
d3.extent(penguinData, (d) => d.culmen_length_mm)
Insert cell
Insert cell
// Mean of all body mass (grams) values in penguinData:
d3.mean(penguinData, (d) => d.body_mass_g)
Insert cell
Insert cell
// Alternatively:
d3.mean(penguinData.map((d) => d.body_mass_g))
Insert cell
// Standard deviation of culmen depth:
d3.deviation(penguinData, (d) => d.body_mass_g)
Insert cell
Insert cell
// Count of flipper length values:
d3.count(penguinData, (d) => d.flipper_length_mm)
Insert cell
Insert cell
Insert cell
Insert cell
// Group penguinData by species (store Map as groupSpecies):
groupSpecies = d3.group(penguinData, (d) => d.species)
Insert cell
Insert cell
// Then get just the Adelies:
groupSpecies.get("Adelie")
Insert cell
Insert cell
// Group penguinData by species and island (store as groupSpeciesIsland):
groupSpeciesIsland = d3.group(
penguinData,
(d) => d.species,
(d) => d.island
)
Insert cell
Insert cell
// Get observations for Adelie penguins on Dream Island:
groupSpeciesIsland.get("Adelie").get("Dream")
Insert cell
Insert cell
Insert cell
Insert cell
// Find the mean body mass by penguin species:
d3.rollup(
penguinData,
(v) => d3.mean(v, (d) => d.body_mass_g),
(d) => d.species
)
Insert cell
Insert cell
// Find the mean flipper length by penguin species and sex:
d3.rollup(
penguinData,
(v) => d3.mean(v, (d) => d.flipper_length_mm),
(d) => d.species,
(d) => d.sex
)
Insert cell
Insert cell
Insert cell
Insert cell
arrayOfArrays = [
[1, 2],
[3, 4]
]
Insert cell
arrayOfArrays.map(([firstNumber, secondNumber]) => ({
firstNumber,
secondNumber
}))
Insert cell
// Use flatRollup to find mean body mass by penguin species, then map to get an array of objects:
d3
.flatRollup(
penguinData,
(v) => d3.mean(v, (d) => d.body_mass_g),
(d) => d.species
)
.map(([species, meanMass]) => ({ species, meanMass }))
Insert cell
Insert cell
Insert cell
Insert cell
// Create a new bar chart with Observable Plot to visualize mean body mass by species:

Insert cell
Insert cell
Insert cell
Insert cell
import { showMe } from "@observablehq/show-me"
Insert cell

One platform to build and deploy the best data apps

Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Learn more