Platform
Resources
Pricing
Sign in
Get started
datavizstudio
Workspace
Fork
Public
The Art of Data Visualization (Fall 2023)
By
Minghua Sun
Edited
Nov 29, 2023
Fork of
Isotype / Pictogram Demo Source
•
4 forks
Importers
1 star
6
Insert cell
Insert cell
Insert cell
Insert cell
1
Insert cell
Plot
.
plot
(
{
width
:
300
,
height
:
300
,
x
:
{
domain
:
[
1
,
2
,
3
]
}
,
y
:
{
domain
:
[
1
,
2
,
3
]
}
,
marks
:
[
Plot
.
dot
(
matrixSample
,
{
x
:
"x"
,
y
:
"y"
}
)
,
Plot
.
ruleX
(
[
1
,
2
,
3
]
,
{
stroke
:
"cyan"
}
)
,
Plot
.
ruleY
(
[
1
,
2
,
3
]
,
{
stroke
:
"pink"
}
)
]
}
)
Insert cell
Insert cell
Insert cell
createArray
=
(
n
)
=>
d3
.
range
(
1
,
n
+
1
)
Insert cell
createArray
(
10
)
Insert cell
Insert cell
calculateIconLayout
(
10
,
102
)
Insert cell
Insert cell
createDeepMatrix
=
(
iconsPerRow
,
totalIcons
)
=>
calculateIconLayout
(
iconsPerRow
,
totalIcons
)
.
map
(
(
d
,
i
)
=>
createArray
(
d
)
.
map
(
(
t
)
=>
{
return
{
x
:
t
,
y
:
i
+
1
}
}
)
)
Insert cell
1
Insert cell
createMatrixData
(
10
,
100
)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
createIconMatrixPlot
(
iconsPerRow
,
iconsTotal
,
iconsFilled
)
Insert cell
1
Insert cell
testData
=
createMatrixData
(
10
,
100
)
Insert cell
Insert cell
Plot
.
plot
(
{
y
:
{
reverse
:
true
}
,
color
:
{
domain
:
[
"silver"
,
"bronze"
,
"gold"
]
,
// data
range
:
[
"#dcdcdc"
,
"brown"
,
"red"
]
// color
}
,
marks
:
[
Plot
.
dot
(
typeMatrix
,
{
x
:
"x"
,
y
:
"y"
,
fill
:
"type"
,
r
:
10
,
symbol
:
"star"
}
)
,
// Plot.text(testData, { x: d => d.x, y: d => d.y, text: d => `(${d.x}, ${d.y})` })
]
}
)
Insert cell
import
{
olympics2020
,
medals
}
from
"@datavizstudio/isotype-pictogram-demo"
Insert cell
Insert cell
import
{
olympicsMatrixData
}
from
"@datavizstudio/person-isotype-matrix-source"
Insert cell
olympics2020
Insert cell
olympicsMatrixData
Insert cell
ranking
=
d3
.
sort
(
olympicsMatrixData
,
d
=>
d
.
Gold
)
.
map
(
d
=>
d
.
nation
)
Insert cell
Plot
.
plot
(
{
margin
:
30
,
width
:
width
,
y
:
{
reverse
:
true
}
,
fx
:
{
domain
:
ranking
}
,
marks
:
[
// Plot.dot(olympicsMatrixData, { x: "x", y: "y", fill: "type", r: 5, fx: "nation"}),
// Plot.frame(),
Plot
.
text
(
olympicsMatrixData
,
{
x
:
d
=>
d
.
x
,
y
:
d
=>
d
.
y
,
text
:
d
=>
medals
[
d
.
type
]
,
fontSize
:
15
,
fx
:
"nation"
}
)
]
}
)
Insert cell
import
{
Scrubber
}
from
'@mbostock/scrubber'
Insert cell
flags
=
(
{
USA
:
"🇺🇸"
,
CHN
:
"🇨🇳"
,
JPN
:
"🇯🇵"
,
GBR
:
"🇬🇧"
,
ROC
:
"🇷🇺"
,
AUS
:
"🇦🇺"
,
GER
:
"🇩🇪"
,
NED
:
"🇧🇷"
,
ITA
:
"🇦🇷"
,
FRA
:
"🇫🇷"
,
}
)
Insert cell
nations
=
d3
.
sort
(
olympics2020
,
d
=>
-
d
.
Gold
)
.
map
(
d
=>
d
.
nation
)
Insert cell
Insert cell
Plot
.
plot
(
{
title
:
`2020 Olympics medal counts for ${
nationLoop
} ${
flags
[
nationLoop
]
}`
,
subtitle
:
"2020 Olympics top 10 nations medal counts"
,
margin
:
60
,
y
:
{
label
:
null
,
axis
:
null
,
reverse
:
true
}
,
x
:
{
label
:
null
,
axis
:
null
,
domain
:
createArray
(
10
)
,
// [1, 2, 3..., n]
}
,
marks
:
[
Plot
.
text
(
olympicsMatrixData
,
{
x
:
"x"
,
y
:
"y"
,
text
:
d
=>
medals
[
d
.
type
]
,
fontSize
:
20
,
filter
:
d
=>
d
.
nation
===
nationLoop
}
)
]
}
)
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
matrixSample
Edit
Show 1 comment
Copy import
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
createArray
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
calculateIconLayout
Edit
Add comment
Copy import
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
createDeepMatrix
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
createMatrixData
Edit
Show 1 comment
Copy import
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
iconsPerRow
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
iconsTotal
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
iconsFilled
Edit
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
personOutlined
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
personFilled
Edit
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
personMatrixData
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
createIconMatrixPlot
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Show 1 comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
testData
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
typeMatrix
Edit
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
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
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
ranking
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
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
flags
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
nations
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
nationLoop
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML