Published
Edited
Oct 26, 2020
8 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
a = vl
.angle()
.fieldN("dot")
.scale({ range: [0, 90] })
Insert cell
generateData = () => {
const data = Array.from(Array(n)).map(() => ({
x: Math.random(),
y: Math.random(),
dot: false
}));
data[Math.floor(Math.random()*data.length)].dot=true;
return data;
}
Insert cell
generateChart = (mark, encode, popupAttrib) => {
const base = vl
.mark(mark)
.encode(...encode)
.width(facetWidth)
.height(facetWidth * 0.7);

return vl
.concat(
base.encode(
popupAttrib.scale({
...popupAttrib.toObject().scale,
domain: [true, false]
})
),
base.encode(
popupAttrib.scale({
...popupAttrib.toObject().scale,
domain: [false, true]
})
)
)
.spacing(0)
.data(generateData())
.resolve({
scale: {
color: "independent",
size: "independent",
shape: "independent",
angle: "independent",
opacity: "independent"
}
})
.config({
axis: { title: false, labels: false, ticks: false, grid: false },
range: { category: ["#1f77b4", "#d62728", "#fdb71a"] }
});
}
Insert cell
facetWidth = width/13
Insert cell
pointSize= 70
Insert cell
s = vl.color().scale({a:1})
Insert cell
import {slider, button} from "@jashkenas/inputs"
Insert cell
import {vl} from "@vega/vega-lite-api"
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