Published
Edited
Aug 14, 2021
1 fork
Importers
2 stars
Insert cell
md `# Compare Two States with Total`
Insert cell
Insert cell
md `### Choose slider timeframe and two states (red,blue) below, green is daily total`
Insert cell
viewof mergeAllDateFilter = rangeSlider(mergeAll, d=>d.date)
Insert cell
viewof filterState = Inputs.select(["Selangor"].concat(stateList), {label: "State 1 (red)"})
Insert cell
viewof filterState2 = Inputs.select(["W.P. Kuala Lumpur"].concat(stateList), {label: "State 2 (blue)"})
Insert cell
Insert cell
url = "https://raw.githubusercontent.com/MoH-Malaysia/covid19-public/main/epidemic/cases_state.csv"
Insert cell
casebyState = await d3.csv(url)
Insert cell
url1 = "https://raw.githubusercontent.com/MoH-Malaysia/covid19-public/main/epidemic/cases_malaysia.csv"
Insert cell
newCase = await d3.csv(url1)
Insert cell
newCase2 = newCase.map( d => (
{
date: dateParser(d.date),
totalCases: d.cases_new
}
)
)
Insert cell
dateParser = d3.timeParse("%Y-%m-%d")
Insert cell
startDate = dateParser(casebyState[0].date)
Insert cell
endDate = dateParser(casebyState[7919].date)
Insert cell
stateList = _.uniqBy(casebyState, d => d.state)
.map(d => d.state)
Insert cell
md `### casebyState2 is filtered by 1st filter`
Insert cell
casebyState2 = casebyState.map( d => (
{
date: dateParser(d.date),
state1: d.state,
case1: d.cases_new
}
)
)
.filter(d => d.state1 == filterState )
Insert cell
md `### casebyState3 is filtered by 2nd filter`
Insert cell
casebyState3 = casebyState.map( d => (
{
date: dateParser(d.date),
state2: d.state,
case2: d.cases_new
}
)
)
.filter(d => d.state2 == filterState2 )
Insert cell
md `### mergedAll is merged all data plus daily cases ( newCase2 ) into a new array`
Insert cell
mergeAll = _.merge(casebyState2, casebyState3, newCase2 )
Insert cell
import {rangeSlider} from "@bumbeishvili/utils"
Insert cell
md `## Choose timeframes below`
Insert cell
md `### Data in table format`
Insert cell
Inputs.table(mergeAllDateFilter.data)
Insert cell

One platform to build and deploy the best data apps

Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Learn more