Platform
Resources
Pricing
Sign in
Get started
DIS-2023-FALL
Workspace
Fork
Public
By
Sumeyya
Edited
Dec 7, 2023
Insert cell
Insert cell
Insert cell
Insert cell
penguinData
Filter
Columns
Sort
Slice
Save
Type Table, then Shift-Enter. Ctrl-space for more options.
Insert cell
Insert cell
// Add your code here to do the wrangling steps above!
penguinData
.
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
showMe
(
`penguinData
.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)`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
Insert cell
Insert cell
// Find the minimum culmen length in penguinData:
d3
.
min
(
penguinData
,
d
=>
d
.
culmen_length_mm
)
Insert cell
showMe
(
`d3.min(penguinData, d => d.culmen_length_mm)`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
// Find the range of culmen lengths in penguinData:
d3
.
extent
(
penguinData
,
d
=>
d
.
culmen_length_mm
)
Insert cell
showMe
(
`d3.extent(penguinData, d => d.culmen_length_mm)`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
// Mean of all body mass (grams) values in penguinData:
d3
.
mean
(
penguinData
,
d
=>
d
.
body_mass_g
)
Insert cell
showMe
(
`d3.mean(penguinData, d => d.body_mass_g)`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
// Alternatively:
d3
.
mean
(
penguinData
.
map
(
(
d
)
=>
d
.
body_mass_g
)
)
Insert cell
// Standard deviation of culmen depth:
d3
.
deviation
(
penguinData
,
d
=>
d
.
culmen_depth_mm
)
Insert cell
showMe
(
`d3.deviation(penguinData, d => d.culmen_depth_mm)`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
// Count of flipper length values:
d3
.
count
(
penguinData
,
d
=>
d
.
flipper_length_mm
)
Insert cell
showMe
(
`d3.count(penguinData, d => d.flipper_length_mm)`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
penguinData
Filter
Columns
Sort
Slice
Save
Type Table, then Shift-Enter. Ctrl-space for more options.
Insert cell
Insert cell
Insert cell
// Group penguinData by species (store Map as groupSpecies):
groupSpecies
=
d3
.
group
(
penguinData
,
d
=>
d
.
species
)
Insert cell
showMe
(
`groupSpecies = d3.group(penguinData, (d) => d.species)`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
// Then get just the Adelies:
groupSpecies
.
get
(
"Adelie"
)
Insert cell
showMe
(
`groupSpecies.get("Adelie")`
,
{
dependencies
:
{
penguinData
,
groupSpecies
}
}
)
Insert cell
// Group penguinData by species and island (store as groupSpeciesIsland):
groupSpeciesIsland
=
d3
.
group
(
penguinData
,
d
=>
d
.
species
,
d
=>
d
.
island
)
Insert cell
showMe
(
`groupSpeciesIsland = d3.group(penguinData, d => d.species, d => d.island)`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
// Get observations for Adelie penguins on Dream Island:
groupSpeciesIsland
.
get
(
"Adelie"
)
.
get
(
"Dream"
)
Insert cell
showMe
(
`groupSpeciesIsland.get("Adelie").get("Dream")`
,
{
dependencies
:
{
penguinData
,
groupSpeciesIsland
}
}
)
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
penguinData
Insert cell
d3
.
mean
(
penguinData
,
d
=>
d
.
body_mass_g
)
Insert cell
showMe
(
`d3.rollup(
penguinData,
(v) => d3.mean(v, (d) => d.body_mass_g),
(d) => d.species
)`
,
{
dependencies
:
{
penguinData
}
}
)
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
showMe
(
`d3.rollup(penguinData, v => d3.mean(v, d => d.flipper_length_mm), d => d.species, d => d.sex)`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
Insert cell
Insert cell
arrayOfArrays
=
[
[
1
,
2
]
,
[
3
,
4
]
]
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
showMe
(
`d3
.flatRollup(
penguinData,
(v) => d3.mean(v, (d) => d.body_mass_g),
(d) => d.species
)
.map(([species, meanMass]) => ({ species, meanMass }))`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
Insert cell
Insert cell
Plot
.
plot
(
{
marks
:
[
Plot
.
barY
(
penguinData
,
Plot
.
groupX
(
{
y
:
"mean"
}
,
{
y
:
"body_mass_g"
,
x
:
"species"
,
sort
:
{
x
:
"y"
,
reverse
:
true
}
}
)
)
]
}
)
Insert cell
showMe
(
`Plot.plot({
marks: [
Plot.barY(
penguinData,
Plot.groupX(
{ y: "mean" },
{ y: "body_mass_g", x: "species", sort: { x: "y", reverse: true } }
)
)
]
})`
,
{
dependencies
:
{
penguinData
}
}
)
Insert cell
Insert cell
penguinData
=
penguins
Insert cell
import
{
showMe
}
from
"@observablehq/show-me"
Insert cell
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Try it for free
Learn more
Fork
View
Export
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
Cells
penguinData
File attachments
Databases
Filter
Column
Operator
Columns
Sort
Column
Direction
Descending
Ascending
Slice
From
Start
To
End
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
Cells
penguinData
File attachments
Databases
Filter
Column
Operator
Columns
Sort
Column
Direction
Descending
Ascending
Slice
From
Start
To
End
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
groupSpecies
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
groupSpeciesIsland
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
arrayOfArrays
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
penguinData
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML