Plot.plot({
title: timetrend.metadata.title,
subtitle: timetrend.metadata.subtitle,
caption: `Source: ${timetrend.metadata.source.name}`,
style: {
},
style: { fontSize: "20" },
height: 543,
width: 800,
marginLeft: 100,
marginRight: 50,
marginTop: 20,
marginBottom: 50,
insetTop: 0,
insetBottom: 10,
insetLeft: 1,
insetRight: 0,
color: { legend: true },
x: {
label: timetrendDemo.dataPointMetadata.find((item) => item.id === "YEAR")
.name,
domain: timetrendDemo.dataPointMetadata.find((item) => item.id === "YEAR")
.categories
},
y: {
grid: true,
domain: [yaxisMin, yaxisMax],
label: timetrendDemo.dataPointMetadata.find((item) => item.id === "median")
.name
},
color: {
type: "ordinal",
legend: true,
domain: timetrendDemo.dataPointMetadata.find(
(item) => item.id === "levels_title"
).categories,
range: [
"#009e73",
"#ffb000",
"#dc267f",
"#648fff",
"#d55e00",
"#cc79a7",
"#0072b2",
"#f0e442",
"#785ef0",
"#fe6100"
]
},
marks: [
Plot.axisX({ fontSize: 13 }),
Plot.axisY({ fontSize: 12, label: "$" }),
Plot.lineY(timetrendDemo.dataPoints, {
x: "YEAR",
y: "median",
stroke: "levels_title",
strokeWidth: 2,
tip: true,
title: (d) =>
`Median: ${d.median}\n${
timetrendDemo.dataPointMetadata.find(
(item) => item.id === "levels_title"
).name
}: ${d.levels_title}\nYear: ${d.YEAR}`
}),
Plot.dot(timetrendDemo.dataPoints, {
x: "YEAR",
y: "median",
stroke: "levels_title",
r: 2
}),
Plot.text(
timetrendDemo.dataPoints,
Plot.selectLast({
x: "YEAR",
y: "median",
z: "levels_title",
text: "levels_title",
textAnchor: "start",
dx: 5
})
)
]
})