Published
Edited
Feb 14, 2020
1 fork
Insert cell
md`# Project 1`
Insert cell
md `test`
Insert cell
import {vl} from '@vega/vega-lite-api'
Insert cell
d3 = require('d3')
Insert cell
import {printTable} from '@uwdata/data-utilities'
Insert cell
paired = d3.csvParse(await FileAttachment("PairedAssignmentData.csv").text(), d3.autoType)
Insert cell
printTable(paired.slice(0,5))
Insert cell
line = vl.markLine({strokeWidth:3, opacity: 0.5, interpolate: 'monotone'})
.data(paired)
.encode(
vl.x().fieldQ('WeeksAheadPurchased')
.title('Weeks Ahead Purchased')
.axis({labelAngle:0, tickCount: 6}),
vl.y().fieldQ('TicketPriceEuros')
.title('Ticket Price in Euros'),
vl.color().fieldN('Mode'),
vl.row().fieldN('Route'));
Insert cell
point = vl.markPoint({size: 100, filled: true})
.data(paired)
.encode(
vl.x().fieldQ('WeeksAheadPurchased')
.title('Weeks Ahead Purchased')
.axis({tickCount: 6}),
vl.y().fieldQ('TicketPriceEuros')
.title('Ticket Price in Euros'),
vl.color().fieldN('Mode'),
vl.row().fieldN('Route'));
Insert cell
{ const line = vl.markLine({strokeWidth:9, opacity: 0.4, interpolate: 'monotone'})
.encode(
vl.x().fieldQ('WeeksAheadPurchased')
.title('Weeks Ahead Purchased')
.axis({labelAngle:0, tickCount: 6}),
vl.y().fieldQ('TicketPriceEuros')
.title('Ticket Price in Euros'),
vl.color().fieldN('Mode'));
const point = vl.markPoint({size: 100, filled: true, shape: 'circle'})
.encode(
vl.x().fieldQ('WeeksAheadPurchased')
.title('Weeks Ahead Purchased')
.axis({labelAngle:0, tickCount: 6}),
vl.y().fieldQ('TicketPriceEuros')
.title('Ticket Price in Euros'),
vl.color().fieldN('Mode'));
return vl.layer(line, point)
.facet({row: {field: 'Route',
header: {title: null, labelAngle:360, labelAlign: 'left', labelFont: 'Helvetica',
labelFontStyle: 'bold', labelFontSize: 12},
sort: ['Zurich-Milan', 'London-Amsterdam', 'Berlin-Warsaw', 'Munich-Budapest',
'London-Marseille', 'Paris-Barcelona',]}})
.data(paired)
.title({
text: "Travel in Europe by Route",
fontSize: 25,
font: "Helvetica",
anchor: "middle"})
.resolve({axis: {x: 'independent'}})
.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