Skip to content

Instantly share code, notes, and snippets.

@vsivsi
Last active April 17, 2020 06:55
Show Gist options
  • Save vsivsi/f63be32d037e3effcd7c0e04aacda2cf to your computer and use it in GitHub Desktop.
Save vsivsi/f63be32d037e3effcd7c0e04aacda2cf to your computer and use it in GitHub Desktop.
Gophernotes + VegaLite = Awesome
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"g := []byte(`\n",
" {\n",
" \"$schema\": \"https://vega.github.io/schema/vega-lite/v2.0.json\",\n",
" \"description\": \"A simple bar chart with embedded data.\",\n",
" \"data\": {\n",
" \"values\": [\n",
" {\"a\": \"A\", \"b\": 28},\n",
" {\"a\": \"B\", \"b\": 55},\n",
" {\"a\": \"C\", \"b\": 43},\n",
" {\"a\": \"D\", \"b\": 91},\n",
" {\"a\": \"E\", \"b\": 81},\n",
" {\"a\": \"F\", \"b\": 53},\n",
" {\"a\": \"G\", \"b\": 19},\n",
" {\"a\": \"H\", \"b\": 87},\n",
" {\"a\": \"I\", \"b\": 52}\n",
" ]\n",
" },\n",
" \"mark\": \"bar\",\n",
" \"encoding\": {\n",
" \"x\": {\"field\": \"a\", \"type\": \"ordinal\"},\n",
" \"y\": {\"field\": \"b\", \"type\": \"quantitative\"}\n",
" }\n",
" }`)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"type VegaLite struct { \n",
" Json map[string]interface{}\n",
"}\n",
"\n",
"func (vl VegaLite) SimpleRender() display.MIMEMap {\n",
" return display.MIMEMap{\n",
" `application/vnd.vegalite.v4+json`: vl.Json,\n",
" `text/plain`: \"<VegaLite 4 object>\",\n",
" }\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.vegalite.v4+json": {
"$schema": "https://vega.github.io/schema/vega-lite/v2.0.json",
"data": {
"values": [
{
"a": "A",
"b": 28
},
{
"a": "B",
"b": 55
},
{
"a": "C",
"b": 43
},
{
"a": "D",
"b": 91
},
{
"a": "E",
"b": 81
},
{
"a": "F",
"b": 53
},
{
"a": "G",
"b": 19
},
{
"a": "H",
"b": 87
},
{
"a": "I",
"b": 52
}
]
},
"description": "A simple bar chart with embedded data.",
"encoding": {
"x": {
"field": "a",
"type": "ordinal"
},
"y": {
"field": "b",
"type": "quantitative"
}
},
"mark": "bar"
},
"image/png": "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",
"text/plain": [
"<VegaLite 4 object>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import \"encoding/json\"\n",
"\n",
"vl := VegaLite{}\n",
"\n",
"err := json.Unmarshal(g, &vl.Json)\n",
"\n",
"vl"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Go",
"language": "go",
"name": "gophernotes"
},
"language_info": {
"codemirror_mode": "",
"file_extension": ".go",
"mimetype": "",
"name": "go",
"nbconvert_exporter": "",
"pygments_lexer": "",
"version": "go1.14.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment