Platform
Resources
Pricing
Sign in
Contact us
Chris North
Department of Computer Science, Virginia Tech
Workspace
Fork
Public
VT CS 5764 Lecture Notes
By
Chris North
Edited
Sep 27, 2023
3 forks
1
VT CS 5764 Lecture Notes
Intro to Observable and JS
Intro to Observable and JS (solutions)
D3 Visualization
D3 Visualization (solutions)
Simple Axis Drawing
D3 Interaction
D3 Interaction (solutions)
D3 Navigation
D3 Navigation (solutions)
D3 Graph Layout
D3 Graph Layout (solutions)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
1
+
2
Insert cell
5
6
Insert cell
{
//a = "Bye"
let
x
=
1
x
=
x
+
1
return
(
x
+
2
)
}
Insert cell
a
=
"Hello"
// "Goodbye "
Insert cell
a
Insert cell
//a = "something else"
Insert cell
a
+
" World"
// Reactive
Insert cell
b
=
c
+
1
Insert cell
c
=
b
+
1
Insert cell
c
Insert cell
myfunc
=
x
=>
x
+
2
Insert cell
myfunc
(
1
)
Insert cell
Insert cell
[
1
,
2
,
3
]
Insert cell
(
{
a
:
1
,
b
:
2
,
c
:
3
}
)
Insert cell
Insert cell
data
=
FileAttachment
(
"States2010.csv"
)
.
csv
(
{
typed
:
true
}
)
Insert cell
data
.
length
Insert cell
data
.
columns
// header row
Insert cell
data
.
columns
.
length
Insert cell
Insert cell
viewof
table1
=
Inputs
.
table
(
data
)
Insert cell
// interactively filtered table rows
table1
Insert cell
table1
Filter
1
Columns
Sort
Slice
Save
Type Table, then Shift-Enter. Ctrl-space for more options.
Insert cell
table2
Insert cell
Insert cell
d3
=
require
(
"d3"
)
Insert cell
Insert cell
// Get the first 5 states
data
.
slice
(
4
,
6
)
Insert cell
Insert cell
// Which state is the wealthiest?
d3
.
max
(
data
,
r
=>
r
.
IncomePerCapita
)
Insert cell
data
[
d3
.
maxIndex
(
data
,
r
=>
r
.
IncomePerCapita
)
]
Insert cell
// What is the total population of USA?
d3
.
sum
(
data
,
r
=>
r
.
Population
)
Insert cell
Insert cell
// Extract populations
data
.
map
(
(
r
,
i
,
a
)
=>
r
.
Population
)
Insert cell
data
.
map
(
(
r
,
i
,
a
)
=>
i
)
Insert cell
// Find the population change from 2000 to 2010
data
.
map
(
r
=>
r
.
Population
-
r
.
Pop2000
)
Insert cell
// add new column to table. extra parens are important
data2
=
data
.
map
(
r
=>
(
{
...
r
,
PopDelta
:
r
.
Population
-
r
.
Pop2000
}
)
)
Insert cell
Insert cell
// Which states are poor?
data
.
filter
(
r
=>
r
.
IncomePerCapita
<
30000
)
Insert cell
Insert cell
// always sort a copy of the data
// need a comparison function
[
...
data
]
.
sort
(
(
a
,
b
)
=>
a
.
IncomePerCapita
-
b
.
IncomePerCapita
)
Insert cell
Insert cell
// GroupBy, bin function
d3
.
group
(
data
,
r
=>
Math
.
floor
(
r
.
IncomePerCapita
/
10000
)
)
Insert cell
// RollUp, aggregation function, bin function
d3
.
rollup
(
data
,
(
g
)
=>
d3
.
mean
(
g
,
(
r
)
=>
r
.
PercentCollegeGrad
)
,
(
r
)
=>
Math
.
floor
(
r
.
IncomePerCapita
/
10000
)
)
Insert cell
// RollUp, aggregation function, bin function
Array
.
from
(
d3
.
rollup
(
data
,
g
=>
d3
.
mean
(
g
,
r
=>
r
.
PercentCollegeGrad
)
,
r
=>
Math
.
floor
(
r
.
IncomePerCapita
/
10000
)
)
)
Insert cell
Insert cell
alphabet
Insert cell
data
Clear All
Swap X/Y
Customize
X
IncomePerCapita
Y
PercentCollegeGrad
Color
—
Size
—
Facet X
—
Facet Y
—
Mark
Auto
Type Chart, then Shift-Enter. Ctrl-space for more options.
Insert cell
Plot
.
plot
(
{
marks
:
[
Plot
.
dot
(
data
,
{
x
:
"IncomePerCapita"
,
y
:
"PercentCollegeGrad"
,
tip
:
true
}
)
]
}
)
Insert cell
Plot
.
plot
(
{
marks
:
[
Plot
.
barX
(
data
,
{
y
:
"Name"
,
x
:
"IncomePerCapita"
,
sort
:
{
y
:
"x"
,
reverse
:
true
}
}
)
,
Plot
.
ruleX
(
[
0
]
)
]
,
height
:
700
,
marginLeft
:
120
,
style
:
{
color
:
"steelblue"
}
}
)
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
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
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
a
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
b
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
c
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
myfunc
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
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
data
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
table1
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
table2
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
Cells
table1
File attachments
States2010.csv
CSV
Databases
Filter
Population
Operator
Column
Operator
Columns
Sort
Column
Direction
Descending
Ascending
Slice
From
Start
To
End
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
d3
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
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
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
data2
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
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
Add comment
Select
Duplicate
Copy link
Embed
Delete
Cells
data
File attachments
States2010.csv
CSV
Customize
Clear
Title
Subtitle
Caption
Height
Width
Auto
Full
Margin
Top
Right
Bottom
Left
Inset
Legend
Auto
None
X label
X scale
Auto
Scale
Auto
linear
log
sqrt
symlog
point
band
X options
Grid
Reverse
Y label
Y scale
Auto
Scale
Auto
linear
log
sqrt
symlog
point
band
Y options
Grid
Reverse
Color scheme
Auto
Color scheme
Auto
Default color schemes
Sequential
Diverging
Cyclical
Categorical
Sequential color schemes
Blues
Greens
Greys
Oranges
Purples
Reds
Turbo
Viridis
Inferno
Magma
Plasma
Cividis
Warm
Cool
BuGn
BuPu
GnBu
OrRd
PuBuGn
PuBu
PuRd
RdPu
YlGnBu
YlGn
YlOrBr
YlOrRd
Diverging color schemes
BrBG
PRGn
PiYG
PuOr
RdBu
RdGy
RdYlBu
RdYlGn
Spectral
Cyclical color schemes
Sinebow
Turbo
Categorical color schemes
Category10
Accent
Dark2
Paired
Pastel1
Pastel2
Set1
Set2
Set3
Tableau10
Color scale
Auto
Scale
Auto
linear
log
sqrt
symlog
categorical
ordinal
Color options
Reverse
Reducer
—
Auto
—
count
distinct
sum
min
max
mean
median
mode
Field
—
Reducer
—
Auto
—
count
distinct
sum
min
max
mean
median
mode
Field
—
Reducer
—
Auto
—
count
distinct
sum
min
max
mean
median
mode
Field
—
Reducer
—
Auto
—
count
distinct
sum
min
max
mean
median
mode
Field
—
Field
—
Field
—
Mark
Auto
—
bar
dot
line
area
rule
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