Public
Edited
Nov 7, 2024
Insert cell
Insert cell
Insert cell
Insert cell
no_data = africaOutlineWithCountries.features.filter((d) => {
const element = data.find((e) => d.properties.sov_a3 == e.Code);
return element ? false : true;
});
Insert cell
data = decadeData.filter((d) => {
const element = africaOutlineWithCountries.features.find((e) => e.properties.sov_a3 == d.Code);
return element ? true : false;
}).map((d) => {
const element = africaOutlineWithCountries.features.find((e) => e.properties.sov_a3 == d.Code);
d.geometry = element.geometry;
d.type = element.type;
return d;

})
Insert cell
dataAfter = decadeAfterData.filter((d) => {
const element = africaOutlineWithCountries.features.find((e) => e.properties.sov_a3 == d.Code);
return element ? true : false;
}).map((d) => {
const element = africaOutlineWithCountries.features.find((e) => e.properties.sov_a3 == d.Code);
d.geometry = element.geometry;
d.type = element.type;
return d;

})
Insert cell
decadeAfterData = fertilizerUsePerHectareOfCropland.filter((d) => d.Year % 10 == 0 && d.Year > 1990);
Insert cell
decadeData = fertilizerUsePerHectareOfCropland.filter((d) => d.Year % 10 == 0 && d.Year <= 1990 && d.Year > 1950);
Insert cell
africaOutlineWithCountries = FileAttachment("africa-outline-with-countries_6.geojson").json()
Insert cell
fertilizer-use-per-hectare-of-cropland.csv
Type Table, then Shift-Enter. Ctrl-space for more options.

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

Insert cell
Africa_Urbanization@1.csv
Type Table, then Shift-Enter. Ctrl-space for more options.

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