Public
Edited
Aug 6, 2023
Insert cell
Insert cell
Insert cell
clean_data
X
SkoleAar
Y
PrisElev
Color
Size
Facet X
Facet Y
Mark
Auto
Type Chart, then Shift-Enter. Ctrl-space for more options.

Insert cell
clean_data
Type Table, then Shift-Enter. Ctrl-space for more options.

Insert cell
Plot.plot({
marks: [
Plot.rectY(clean_data, Plot.binX({ y: "count" }, { x: "PrisElev" })),
Plot.ruleY([0])
]
})
Insert cell
Insert cell
clean_data = data.map((d) => {
return {
Kommune: d["[Kommune].[Kommune].[Kommune]"],
SkoleAar: d["[Skoleår].[Skoleår].[Skoleår]"],
PrisElev: parseInt(d["Beløb per folkeskoleelev"].replace(".", "")),
...counties_facets.find(
(c) => c.Kommune == d["[Kommune].[Kommune].[Kommune]"]
)
};
})
Insert cell
counties = data.reduce((unique, item) => {
return unique.includes(item["[Kommune].[Kommune].[Kommune]"])
? unique
: [...unique, item["[Kommune].[Kommune].[Kommune]"]];
}, [])
Insert cell
counties_facets = counties.map((c, i) => {
return {
Kommune: c,
fx: i % 4, // trellis (facets); we leave facet <0,0> empty for the legend
fy: Math.floor(i / 4)
};
})
Insert cell
Insert cell
dkk = new Intl.NumberFormat("da-DK", {
style: "currency",
currency: "DKK"
})
Insert cell
udd_stat = {
return {
price: {
område: "GS",
emne: "ØKON",
underemne: "ØKOEX",
nøgletal: ["Beløb per folkeskoleelev"],
detaljering: ["[Kommune].[Kommune]", "[Skoleår].[Skoleår]"],
indlejret: false,
tomme_rækker: false,
formattering: "json",
side: 1
},
raw: {}
};
}
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