Platform
Resources
Pricing
Sign in
Get started
Josh Pollock
MIT CS Graduate student in MIT Visualization Group. Previously undergraduate member of @uwplse and @uwsampl.
Workspace
Fork
Public
By
Josh Pollock
Edited
Mar 27, 2023
1
Insert cell
Insert cell
data
=
FileAttachment
(
"imdb_most_voted_500.json"
)
.
json
(
)
Insert cell
genres
=
Array
.
from
(
new
Set
(
data
.
flatMap
(
(
d
)
=>
d
[
'genres'
]
)
)
)
.
sort
(
)
Insert cell
import
{
tidy
,
groupBy
,
summarize
}
from
"@pbeshai/tidyjs"
Insert cell
genreCounts
=
genres
.
map
(
(
genre
)
=>
(
{
genre
,
count
:
data
.
filter
(
(
d
)
=>
d
[
'genres'
]
.
includes
(
genre
)
)
.
length
,
}
)
)
;
Insert cell
genreSetCounts
=
Array
.
from
(
new
Set
(
data
.
map
(
(
d
)
=>
d
[
'genres'
]
.
sort
(
)
.
join
(
','
)
)
)
)
.
map
(
(
genres
)
=>
(
{
genres
:
genres
.
split
(
','
)
,
count
:
data
.
filter
(
(
d
)
=>
d
[
'genres'
]
.
sort
(
)
.
join
(
','
)
===
genres
)
.
length
,
}
)
)
;
Insert cell
genreSetCounts
.
reduce
(
(
acc
,
d
)
=>
acc
+
d
.
count
,
0
)
Insert cell
data
.
map
(
(
d
)
=>
d
[
'genres'
]
.
sort
(
)
.
join
(
','
)
)
Insert cell
genreSetCounts
.
filter
(
(
d
)
=>
d
.
genres
.
includes
(
"Action"
)
&&
d
.
genres
.
includes
(
"Adventure"
)
)
Insert cell
hashGenreSet
=
(
genres
)
=>
genres
.
sort
(
)
.
join
(
','
)
;
Insert cell
dehashGenreSet
=
(
genresHash
)
=>
genresHash
.
split
(
','
)
Insert cell
genreSetHashes
=
Array
.
from
(
new
Set
(
data
.
map
(
(
d
)
=>
hashGenreSet
(
d
[
'genres'
]
)
)
)
)
Insert cell
genreSetCountsRefactored
=
genreSetHashes
.
map
(
(
genresHash
)
=>
(
{
genres
:
dehashGenreSet
(
genresHash
)
,
count
:
data
.
filter
(
(
d
)
=>
hashGenreSet
(
d
[
'genres'
]
)
===
genresHash
)
.
length
,
}
)
)
Insert cell
genreSetCountsRefactored
.
filter
(
(
d
)
=>
d
.
genres
.
includes
(
"Action"
)
&&
d
.
genres
.
includes
(
"Adventure"
)
)
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
data
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
genres
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
genreCounts
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
genreSetCounts
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
hashGenreSet
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dehashGenreSet
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
genreSetHashes
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
genreSetCountsRefactored
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML