Published
Edited
Sep 17, 2020
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
data = (await require('vega-datasets'))['gapminder.json']()
Insert cell
Insert cell
md`${data.length} rows, ${Object.keys(data[0]).length} columns!`
Insert cell
Insert cell
printTable(data.slice(0, 10))
Insert cell
Insert cell
Insert cell
data2000 = data.filter(d => d.year === 2000)
Insert cell
printTable(data2000.slice(0, 10))
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
vl.markPoint()
.data(data2000)
.encode(
vl.x().fieldQ('fertility')
)
.render()
Insert cell
Insert cell
vl.markPoint()
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldO('cluster')
)
.render()
Insert cell
Insert cell
Insert cell
vl.markPoint()
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldQ('life_expect')
)
.render()
Insert cell
Insert cell
Insert cell
vl.markPoint()
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldQ('life_expect'),
vl.size().fieldQ('pop')
)
.render()
Insert cell
Insert cell
vl.markPoint()
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldQ('life_expect'),
vl.size().fieldQ('pop').scale({range: [0, 1000]})
)
.render()
Insert cell
Insert cell
Insert cell
vl.markPoint()
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldQ('life_expect'),
vl.size().fieldQ('pop').scale({range: [0, 1000]}),
vl.color().fieldN('cluster')
)
.render()
Insert cell
Insert cell
vl.markPoint({filled: true})
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldQ('life_expect'),
vl.size().fieldQ('pop').scale({range: [0, 1000]}),
vl.color().fieldN('cluster')
)
.render()
Insert cell
Insert cell
Insert cell
Insert cell
vl.markPoint({filled: true})
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldQ('life_expect'),
vl.size().fieldQ('pop').scale({range: [0, 1000]}),
vl.color().fieldN('cluster'),
vl.opacity().value(0.5),
vl.shape().fieldN('cluster')
)
.render()
Insert cell
Insert cell
Insert cell
vl.markPoint({filled: true})
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldQ('life_expect'),
vl.size().fieldQ('pop').scale({range: [0, 1000]}),
vl.color().fieldN('cluster'),
vl.opacity().value(0.5),
vl.tooltip().fieldN('country')
)
.render()
Insert cell
Insert cell
vl.markPoint({filled: true})
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldQ('life_expect'),
vl.size().fieldQ('pop').scale({range: [0, 1000]}),
vl.color().fieldN('cluster'),
vl.opacity().value(0.5),
vl.tooltip().fieldN('country'),
vl.order().fieldQ('pop').sort('descending')
)
.render()
Insert cell
Insert cell
Insert cell
vl.markPoint({filled: true})
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldQ('life_expect'),
vl.size().fieldQ('pop').scale({range: [0, 1000]}),
vl.color().fieldN('cluster'),
vl.opacity().value(0.5),
vl.order().fieldQ('pop').sort('descending'),
vl.tooltip(['country', 'fertility', 'life_expect'])
)
.render()
Insert cell
Insert cell
Insert cell
Insert cell
vl.markPoint()
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldN('cluster'),
vl.shape().fieldN('cluster')
)
.render()
Insert cell
Insert cell
vl.markPoint({filled: true, size: 100})
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldN('cluster'),
vl.shape().fieldN('cluster')
)
.render()
Insert cell
Insert cell
vl.markCircle({size: 100})
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldN('cluster')
)
.render()
Insert cell
Insert cell
vl.markSquare({size: 100})
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldN('cluster')
)
.render()
Insert cell
Insert cell
vl.markBar()
.data(data2000)
.encode(
vl.x().fieldN('country'),
vl.y().fieldQ('pop')
)
.render()
Insert cell
Insert cell
Insert cell
Insert cell
vl.markLine()
.data(data)
.encode(
vl.x().fieldO('year'),
vl.y().fieldQ('fertility'),
vl.color().fieldN('country').legend(null),
vl.tooltip().fieldN('country')
)
.width(400)
.render()
Insert cell
Insert cell
Insert cell
dataUS = data.filter(d => d.country === 'United States')
Insert cell
vl.markArea()
.data(dataUS)
.encode(
vl.x().fieldO('year'),
vl.y().fieldQ('fertility')
)
.render()
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.
Learn more