Published
Edited
Apr 26, 2019
1 star
Insert cell
Insert cell
import {vl} from '@vega/vega-lite-api'
Insert cell
import {printTable} from '@uwdata/data-utilities'
Insert cell
data = (await require('vega-datasets'))['gapminder.json']()
Insert cell
printTable(data.slice(0,10))
Insert cell
data2000 = data.filter(d => d.year === 2000)
Insert cell
printTable(data2000.slice(0,5))
Insert cell
vl.markPoint()
.data(data2000)
.encode(
vl.x().fieldQ('fertility')
)
.render()
Insert cell
vl.markPoint()
.data(data2000)
.encode(
vl.x().fieldQ('fertility').scale({zero: false}),
vl.y().fieldQ('life_expect').scale({zero: false})
)
.render()
Insert cell
vl.markPoint({filled: true})
.data(data2000)
.encode(
vl.x().fieldQ('fertility').scale({zero: false}),
vl.y().fieldQ('life_expect').scale({zero: false}),
vl.size().fieldQ('pop').scale({range: [0,1000]}),
vl.color().fieldN('cluster').legend({orient: 'bottom'}),
vl.opacity().value(0.5),
// vl.shape().fieldN('cluster')
vl.tooltip(['country', 'fertility', 'life_expect']),
vl.order().fieldQ('pop').sort('descending')
)
.render()
Insert cell
vl.markPoint({filled: true})
.data(data2000)
.encode(
vl.x().fieldQ('fertility').scale({zero: false}),
vl.y().fieldQ('life_expect').scale({zero: false}),
vl.size().fieldQ('pop').scale({range: [0,1000]}),
vl.color().fieldN('cluster'),
vl.opacity().value(0.5),
// vl.shape().fieldN('cluster')
vl.tooltip(['country', 'fertility', 'life_expect']),
vl.order().fieldQ('pop').sort('descending'),
vl.column().fieldN('cluster')
)
.width(135)
.height(135)
.render()
Insert cell
vl.markTick()
.data(data2000)
.encode(
vl.x().fieldQ('fertility'),
vl.y().fieldN('cluster'),
vl.shape().fieldN('cluster')
)
.render()
Insert cell
vl.markBar()
.data(data2000)
.encode(
vl.x().fieldN('country'),
vl.y().fieldQ('pop')
)
.width(800)
.render()
Insert cell
vl.markBar()
.data(data2000)
.encode(
vl.x().fieldN('cluster'),
vl.y().fieldQ('pop'),
vl.color().fieldN('country').legend(null),
vl.tooltip().fieldN('country')
)
.render()
Insert cell
vl.markBar()
.data(data2000)
.encode(
vl.x().min('life_expect'),
vl.x2().max('life_expect'),
vl.y().fieldN('cluster')
)
.render()
Insert cell
vl.markLine({strokeWidth: 3, opacity: 0.5, interpolate: 'monotone'})
.data(data)
// .data(data.filter(d => (d.country === 'United States') || d.country === 'Canada'))
.encode(
vl.x().fieldQ('year'),
vl.y().fieldQ('fertility'),
vl.color().fieldN('country').legend(null),
vl.tooltip().fieldN('country'),
)
.width(800)
.render()
Insert cell
dataNA = data.filter(d => (d.country === 'United States') || d.country === 'Canada' || d.country==='Mexico')
Insert cell
vl.markLine({strokeWidth: 3, opacity: 0.5, interpolate: 'monotone'})
.data(dataNA)
.encode(
vl.x().fieldQ('year'),
vl.y().fieldQ('fertility'),
vl.color().fieldN('country'),
vl.tooltip().fieldN('country')
)
.width(800)
.render()
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