Skip to content

Instantly share code, notes, and snippets.

@GCheung55
Forked from domoritz/.block
Last active July 2, 2018 22:10
Show Gist options
  • Save GCheung55/35ce59b3f3ecb67e069a97ad468b3125 to your computer and use it in GitHub Desktop.
Save GCheung55/35ce59b3f3ecb67e069a97ad468b3125 to your computer and use it in GitHub Desktop.
Vega-Lite Bl.ocks example
license: bsd-3-clause
{
"$schema": "https://vega.github.io/schema/vega/v3.0.json",
"autosize": "fit",
"height": 200,
"width": 200,
"data": [{
"name": "table",
"values": []
}],
"signals": [{
"name": "tooltip",
"value": {},
"on": [{
"events": "rect:mouseover",
"update": "datum"
}, {
"events": "rect:mouseout",
"update": "{}"
}]
}
],
"scales": [{
"name": "xscale",
"type": "band",
"domain": {
"data": "table",
"field": "category"
},
"range": "width",
"padding": 0.05,
"round": true
}, {
"name": "yscale",
"domain": {
"data": "table",
"field": "amount"
},
"nice": true,
"range": "height"
}],
"axes": [{
"orient": "bottom",
"scale": "xscale",
"zindex": 1
}, {
"orient": "left",
"scale": "yscale"
}],
"marks": [{
"type": "rect",
"from": {
"data": "table"
},
"encode": {
"update": {
"x": {
"scale": "xscale",
"field": "category"
},
"width": {
"scale": "xscale",
"band": 1
},
"y": {
"scale": "yscale",
"field": "amount"
},
"y2": {
"scale": "yscale",
"value": 0
},
"fill": {
"value": "steelblue"
}
},
"hover": {
"fill": {
"value": "red"
}
}
}
}, {
"type": "text",
"encode": {
"update": {
"align": {
"value": "center"
},
"baseline": {
"value": "bottom"
},
"fill": {
"value": "#333"
},
"x": {
"scale": "xscale",
"signal": "tooltip.category",
"band": 0.5
},
"y": {
"scale": "yscale",
"signal": "tooltip.amount",
"offset": -2
},
"text": {
"signal": "tooltip.amount"
},
"fillOpacity": [{
"test": "datum === tooltip",
"value": 0
}, {
"value": 1
}]
}
}
}]
}
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/npm/vega@3"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-lite@2"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-embed@3"></script>
</head>
<body>
<div id="vis"></div>
<script>
const spec = "bar.json";
vegaEmbed('#vis', spec, {width: 300, height: 300, defaultStyle: true}).then((vis) => {
vis.view.change('table', vega.changeset().insert([
{"category": "A", "amount": 28},
{"category": "B", "amount": 55},
{"category": "C", "amount": 43},
{"category": "D", "amount": 91},
{"category": "E", "amount": 81},
{"category": "F", "amount": 53},
{"category": "G", "amount": 19},
{"category": "H", "amount": 87}
]));
vis.view.run();
}).catch(console.warn);
</script>
</body>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment