Public
Edited
Jul 3, 2023
Insert cell
Insert cell
url = "https://docs.google.com/spreadsheets/d/1Sc6xjH5YhK4ay2eGlJgJEPMm05axftg_TLYhY8pUMcA/edit?usp=sharing"
Insert cell
chart = LineChart(data, {
x: (d) => d.month,
y: (d) => d.sightings,
z: (d) => d.year,
yLabel: "↑ Rat sightings",
width,
height: 500,
color: "steelblue"
})
Insert cell
chart2 = Plot.plot({
marks: [
Plot.barY(alphabet, {x: "letter", y: "frequency", sort: {x: "y", reverse: true}}),
Plot.ruleY([0])
]
})
Insert cell
data = d3.csv(getCsvUrl(url), d3.autoType)
Insert cell
// Converts a Google Sheets website URL to its CSV URL. You can also go to “File → Publish to web”, select the “Comma-separated values (.csv)” type, select the sheet with your data, and use that CSV URL directly with `d3.csv` above. If you need data to update faster, try the Google Sheets API: https://stackoverflow.com/questions/30082277/accessing-a-new-style-public-google-sheet-as-json/44479726#44479726

getCsvUrl = url => {
url = new URL(url);
const id = url.pathname.split("/")[3]
const gid = new URLSearchParams(url.hash.slice(1)).get("gid") || 0;
return `https://docs.google.com/spreadsheets/d/${id}/export?format=csv&gid=${gid}`
}
Insert cell
import { LineChart } from "@d3/multi-line-chart"
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