Published
Edited
May 9, 2021
1 star
Insert cell
Insert cell
Insert cell
formatWave = (wave,i ) => {
let f = d3.timeFormat('%d/%m/%Y')
let str = `- vague ${i+1} du ${f(wave.start)} au ${f(wave.end)} soit ${ d3.timeDay.count( wave.start, wave.end) } jours : ${countWave(wave)} morts ou ${ parseInt(countWave(wave) / d3.timeDay.count( wave.start, wave.end)) } morts par jour en moyenne`
str += "\n"
return str
}
Insert cell
countWave = (wave)=>{
let diff = d3.filter(deaths, d => d.date.getTime() == wave.end.getTime())[0].cum - d3.filter(deaths, d => d.date.getTime() == wave.start.getTime())[0].cum
return diff
}
Insert cell
waves = {
return [
{
start: d3.min(deaths, d=>d.date),
end: new Date('2020-10-16')
},
{
start: new Date('2020-10-17'),
end: d3.max(deaths, d=>d.date)
}
]
}
Insert cell
deaths = {
let data = d3.sort(franceCovid, d => d.date).map(d => ({ date: d.date , cum: parseInt(d.dc_tot)||0 }))

data = data.map( (d,i) => {
let date = d.date
let cum = d.cum
let daily = data[i].cum - (data[i-1]?.cum||0)
daily = d3.max([daily, 0])
return { date, cum, daily }
})
return data
}

Insert cell
mutable lastUpdate = new Date()
Insert cell
franceCovid = {
mutable lastUpdate = new Date()
let data = await d3.csv('https://www.data.gouv.fr/fr/datasets/r/f335f9ea-86e3-4ffa-9684-93c009d5e617', d3.autoType)

d3.map(data, d => {
d.date = new Date(d.date)
})

data = d3.sort(data, d => d.date)
yield data
}
Insert cell
d3 = require('d3')
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