Published
Edited
Jan 23, 2021
6 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
data = {
let data = await FileAttachment('timeseries.json').json()
const dateParse = d3.timeParse('%Y-%m-%d')
data.forEach(d => {
d.date = dateParse(d.date),
d.value = d.new_confirmed_cases_seven_day_average_per_100k
})
data = data.filter(d => d.date > dateParse('2020-04-25'))
const dates = Array.from(d3.group(data, d => +d.date).keys()).sort(d3.ascending)
return {
dates: dates.map(d => new Date(d)),
series: d3.groups(data, d => d.region)
.map(([name, values]) => {
const value = new Map(values.map(d => [+d.date, d.value]))
return { name, values: dates.map(d => value.get(d)) }
})
}
}
Insert cell
Insert cell
Insert cell
Insert cell
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