Published
Edited
May 13, 2022
Insert cell
Insert cell
Insert cell
embed(specStocks)
Insert cell
Insert cell
Insert cell
embed(specStocksWithMean)
Insert cell
Insert cell
embed(specStocksWithMeanFacet)
Insert cell
Insert cell
Insert cell
embed(specStocksWithMeanFacetDataWithLayer)
Insert cell
Insert cell
embed(specStocksWithMeanTransformFacet)
Insert cell
Insert cell
Insert cell
stocks = aq.loadCSV(
"https://cdn.jsdelivr.net/npm/vega-datasets@2/data/stocks.csv",
{ parse: { date: (x) => aq.op.parse_date(`${x} UTC`) } }
)
Insert cell
Inputs.table(stocks)
Insert cell
Insert cell
stocksMean = stocks
.groupby("symbol")
.rollup({ price: (d) => aq.op.mean(d.price) })
Insert cell
Inputs.table(stocksMean)
Insert cell
Insert cell
specStocks = ({
$schema: "https://vega.github.io/schema/vega-lite/v5.json",
data: { values: stocks.objects() },
layer: [
{
mark: { type: "line" },
encoding: {
x: { field: "date", type: "temporal", scale: { type: "utc" } },
y: { field: "price", type: "quantitative" },
color: { field: "symbol", type: "nominal" }
}
}
]
})
Insert cell
specStocksWithMean = {
const result = _.cloneDeep(specStocks);

result.layer.push({
data: { values: stocksMean.objects() },
mark: { type: "rule" },
encoding: {
y: { field: "price", type: "quantitative" },
color: { field: "symbol", type: "nominal" }
}
});

return result;
}
Insert cell
embed(specStocksFacet)
Insert cell
specStocksFacet = {
const result = _.cloneDeep(specStocks);

result.spec = { layer: _.cloneDeep(result.layer) };
delete result.layer;

result.facet = { field: "symbol" };
result.columns = 3;

return result;
}
Insert cell
specStocksWithMeanFacet = {
const result = _.cloneDeep(specStocksWithMean);

result.spec = { layer: _.cloneDeep(result.layer) };
delete result.layer;

result.facet = { field: "symbol" };
result.columns = 3;

return result;
}
Insert cell
specStocksWithMeanFacetDataWithLayer = {
const result = _.cloneDeep(specStocksWithMeanFacet);

result.spec.layer[0].data = _.cloneDeep(result.data);
delete result.data;

return result;
}
Insert cell
embed(specStocksWithMeanTransform)
Insert cell
specStocksWithMeanTransform = {
const result = _.cloneDeep(specStocksWithMean);

delete result.layer[1].data;
result.layer[1].encoding.y.aggregate = "mean";

return result;
}
Insert cell
specStocksWithMeanTransformFacet = {
const result = _.cloneDeep(specStocksWithMeanFacet);

delete result.spec.layer[1].data;
result.spec.layer[1].encoding.y.aggregate = "mean";

return result;
}
Insert cell
Insert cell
embed = require("vega-embed@6")
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