Platform
Resources
Pricing
Sign in
Contact us
EBVL
Enrico Bertini's Visualization Lab
Workspace
Fork
Public
Practice Exercises
By
Dan Kerrigan
Edited
Jan 24
ISC
Fork of
Data Transformation Practice
•
6 forks
2 stars
Practice Exercises
JavaScript Basics Practice
JavaScript Basics Practice - Solutions
Data Transformation Practice
Data Transformation Practice - Solutions
SVG and D3 Basics Practice
SVG and D3 Basics Practice - Solutions
Bar Chart Practice
Bar Chart Practice - Solutions
Line and Area Charts Practice
Line and Area Charts Practice - Solutions
Maps Practice
Maps Practice - Solutions
Maps Practice II - Solutions
Maps Practice II
Small Multiples Practice
Small Multiples Practice - Solutions
Color and Clarity Practice
Color and Clarity Practice - Solutions
Animated Maps Practice
Animated Maps Practice - Solutions
Networks Practice
Networks Practice - Solutions
Interaction Practice
Interaction Practice - Solutions
Graph Design Practice
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
data
=
d3
.
csv
(
url
,
crash
=>
(
{
// combine the date and time strings into one Date object
dateTime
:
d3
.
timeParse
(
'%m/%d/%Y %H:%M'
)
(
crash
.
date
+
' '
+
crash
.
time
)
,
borough
:
crash
.
borough
,
zip
:
crash
.
zip
,
injured
:
+
crash
.
injured
,
// + converts the string to an int
killed
:
+
crash
.
killed
,
cause
:
crash
.
cause
}
)
)
Insert cell
Insert cell
Insert cell
d3
.
mean
(
data
,
d
=>
d
.
injured
+
d
.
killed
)
Insert cell
Insert cell
d3
.
rollup
(
data
,
g
=>
g
.
length
,
d
=>
d
.
dateTime
.
getDate
(
)
)
Insert cell
Insert cell
data
.
filter
(
d
=>
d
.
zip
===
''
)
.
length
Insert cell
Insert cell
new
Set
(
data
.
map
(
d
=>
d
.
zip
)
)
.
size
Insert cell
d3
.
group
(
data
,
d
=>
d
.
zip
)
.
size
Insert cell
Insert cell
d3
.
max
(
data
,
d
=>
d
.
injured
)
Insert cell
Insert cell
d3
.
groupSort
(
data
,
group
=>
group
.
length
,
collision
=>
collision
.
borough
)
.
filter
(
borough
=>
borough
!==
''
)
.
reverse
(
)
Insert cell
Insert cell
zip11201
=
data
.
filter
(
collision
=>
collision
.
zip
===
'11201'
)
Insert cell
Insert cell
zip11201
.
map
(
collision
=>
collision
.
cause
)
Insert cell
Insert cell
data
.
toSorted
(
(
a
,
b
)
=>
d3
.
descending
(
a
.
injured
,
b
.
injured
)
)
.
slice
(
0
,
5
)
Insert cell
Insert cell
Insert cell
Insert cell
collisionsWithZip
=
data
.
filter
(
d
=>
d
.
zip
!==
""
)
Insert cell
Insert cell
numCollisionsByZip
=
d3
.
rollups
(
collisionsWithZip
,
group
=>
group
.
length
,
collision
=>
collision
.
zip
)
Insert cell
Insert cell
top5ZipsWithCounts
=
numCollisionsByZip
.
slice
(
)
.
sort
(
(
a
,
b
)
=>
d3
.
descending
(
a
[
1
]
,
b
[
1
]
)
)
.
slice
(
0
,
5
)
Insert cell
Insert cell
d3
.
groupSort
(
collisionsWithZip
,
group
=>
-
group
.
length
,
collision
=>
collision
.
zip
)
.
slice
(
0
,
5
)
Insert cell
Insert cell
numInjuredAndKilledByZip
=
d3
.
rollups
(
collisionsWithZip
,
group
=>
d3
.
sum
(
group
,
collision
=>
collision
.
injured
+
collision
.
killed
)
,
collision
=>
collision
.
zip
)
.
sort
(
(
a
,
b
)
=>
d3
.
descending
(
a
[
1
]
,
b
[
1
]
)
)
.
slice
(
0
,
5
)
Insert cell
Insert cell
Insert cell
Insert cell
collisionsWithZipAndBorough
=
data
.
filter
(
d
=>
d
.
zip
!==
""
&&
d
.
borough
!==
""
)
Insert cell
Insert cell
numCollisionsByBoroughZip
=
d3
.
rollups
(
collisionsWithZipAndBorough
,
group
=>
group
.
length
,
// first group by borough
collision
=>
collision
.
borough
,
// then group by zip code
collision
=>
collision
.
zip
)
Insert cell
Insert cell
numCollisionsByBoroughZip
.
map
(
(
[
borough
,
zips
]
)
=>
{
const
top3Zips
=
zips
.
slice
(
)
.
sort
(
(
a
,
b
)
=>
d3
.
descending
(
a
[
1
]
,
b
[
1
]
)
)
.
slice
(
0
,
3
)
.
map
(
(
[
zip
,
count
]
)
=>
(
{
zip
,
count
}
)
)
return
{
borough
,
top3Zips
}
;
}
)
Insert cell
Insert cell
Insert cell
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
Compare fork
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
url
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
data
Add comment
Copy import
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
Edit
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
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
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
zip11201
Add comment
Copy import
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
Edit
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
collisionsWithZip
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
numCollisionsByZip
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
top5ZipsWithCounts
Add comment
Copy import
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
numInjuredAndKilledByZip
Add comment
Copy import
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
collisionsWithZipAndBorough
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
numCollisionsByBoroughZip
Add comment
Copy import
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
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
d3
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML