Created
August 4, 2021 21:05
-
-
Save duncdrum/28a9b9241acd58a8e76b913f9f0b33a1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "https://vega.github.io/schema/vega/v5.json", | |
| "description": "An interactive line chart of RocksDB Benchmarks.", | |
| "width": 650, | |
| "height": 300, | |
| "padding": 10, | |
| "autosize": { | |
| "type": "fit", | |
| "contains": "padding" | |
| }, | |
| "title": "An interactive line chart of RocksDB Benchmarks.", | |
| "signals": [ | |
| { | |
| "name": "indexDate", | |
| "update": "time('2000-01-01Z')", | |
| "on": [ | |
| { | |
| "events": "mousemove", | |
| "update": "invert('x', clamp(x(), 0, width))" | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "maxDate", | |
| "update": "time('2000-01-05Z')" | |
| } | |
| ], | |
| "data": [ | |
| { | |
| "name": "benchmarks", | |
| "values": [ | |
| { | |
| "task": "Update Source", | |
| "commit": "abcdef1", | |
| "date": "2000-01-01Z", | |
| "time": 64 | |
| }, | |
| { | |
| "task": "Compile", | |
| "commit": "abcdef1", | |
| "date": "2000-01-01Z", | |
| "time": 1100 | |
| }, | |
| { | |
| "task": "Benchmark 1", | |
| "commit": "abcdef1", | |
| "date": "2000-01-01Z", | |
| "time": 3000 | |
| }, | |
| { | |
| "task": "Benchmark 2", | |
| "commit": "abcdef1", | |
| "date": "2000-01-01Z", | |
| "time": 6000 | |
| }, | |
| { | |
| "task": "Update Source", | |
| "commit": "abab123", | |
| "date": "2000-01-02Z", | |
| "time": 68 | |
| }, | |
| { | |
| "task": "Compile", | |
| "commit": "abab123", | |
| "date": "2000-01-02Z", | |
| "time": 1110 | |
| }, | |
| { | |
| "task": "Benchmark 1", | |
| "commit": "abab123", | |
| "date": "2000-01-02Z", | |
| "time": 3500 | |
| }, | |
| { | |
| "task": "Benchmark 2", | |
| "commit": "abab123", | |
| "date": "2000-01-02Z", | |
| "time": 5900 | |
| }, | |
| { | |
| "task": "Update Source", | |
| "commit": "1a2b3c4", | |
| "date": "2000-01-03Z", | |
| "time": 67 | |
| }, | |
| { | |
| "task": "Compile", | |
| "commit": "1a2b3c4", | |
| "date": "2000-01-03Z", | |
| "time": 1120 | |
| }, | |
| { | |
| "task": "Benchmark 1", | |
| "commit": "1a2b3c4", | |
| "date": "2000-01-03Z", | |
| "time": 4000 | |
| }, | |
| { | |
| "task": "Benchmark 2", | |
| "commit": "1a2b3c4", | |
| "date": "2000-01-03Z", | |
| "time": 5800 | |
| }, | |
| { | |
| "task": "Update Source", | |
| "commit": "12b3c45", | |
| "date": "2000-01-04Z", | |
| "time": 55 | |
| }, | |
| { | |
| "task": "Compile", | |
| "commit": "12b3c45", | |
| "date": "2000-01-04Z", | |
| "time": 1130 | |
| }, | |
| { | |
| "task": "Benchmark 1", | |
| "commit": "12b3c45", | |
| "date": "2000-01-04Z", | |
| "time": 3100 | |
| }, | |
| { | |
| "task": "Benchmark 2", | |
| "commit": "12b3c45", | |
| "date": "2000-01-04Z", | |
| "time": 5800 | |
| }, | |
| { | |
| "task": "Update Source", | |
| "commit": "543abcd", | |
| "date": "2000-01-05Z", | |
| "time": 48 | |
| }, | |
| { | |
| "task": "Compile", | |
| "commit": "543abcd", | |
| "date": "2000-01-05Z", | |
| "time": 910 | |
| }, | |
| { | |
| "task": "Benchmark 1", | |
| "commit": "543abcd", | |
| "date": "2000-01-05Z", | |
| "time": 2900 | |
| }, | |
| { | |
| "task": "Benchmark 2", | |
| "commit": "543abcd", | |
| "date": "2000-01-05Z", | |
| "time": 5600 | |
| } | |
| ], | |
| "format": { | |
| "type": "json", | |
| "parse": { | |
| "time": "number", | |
| "date": "date:'%Y-%m-%d%Z'" | |
| } | |
| } | |
| }, | |
| { | |
| "name": "index", | |
| "source": "benchmarks", | |
| "transform": [ | |
| { | |
| "type": "filter", | |
| "expr": "day(datum.date) == day(indexDate) && month(datum.date) == month(indexDate) && year(datum.date) == year(indexDate)" | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "indexed_benchmarks", | |
| "source": "benchmarks", | |
| "transform": [ | |
| { | |
| "type": "lookup", | |
| "from": "index", | |
| "key": "task", | |
| "fields": ["task"], | |
| "as": ["index"], | |
| "default": {"time": 0} | |
| }, | |
| { | |
| "type": "formula", | |
| "as": "indexed_time", | |
| "expr": "datum.index.time > 0 ? (datum.time - datum.index.time)/datum.index.time : 0" | |
| } | |
| ] | |
| } | |
| ], | |
| "scales": [ | |
| { | |
| "name": "x", | |
| "type": "time", | |
| "domain": { | |
| "data": "benchmarks", | |
| "field": "date" | |
| }, | |
| "range": "width" | |
| }, | |
| { | |
| "name": "y", | |
| "type": "linear", | |
| "domain": { | |
| "data": "indexed_benchmarks", | |
| "field": "indexed_time" | |
| }, | |
| "nice": true, | |
| "zero": true, | |
| "range": "height" | |
| }, | |
| { | |
| "name": "color", | |
| "type": "ordinal", | |
| "range": "category", | |
| "domain": { | |
| "data": "benchmarks", | |
| "field": "task" | |
| } | |
| }, | |
| { | |
| "name": "commit_id", | |
| "type": "ordinal", | |
| "range": "category", | |
| "domain": { | |
| "data": "benchmarks", | |
| "field": "commit"} | |
| } | |
| ], | |
| "axes": [ | |
| { | |
| "orient": "left", | |
| "scale": "y", | |
| "grid": true, | |
| "format": "%" | |
| }, | |
| { | |
| "orient": "top", | |
| "scale": "x", | |
| "grid": true, | |
| "tickCount":"day" | |
| } | |
| ], | |
| "marks": [ | |
| { | |
| "type": "group", | |
| "from": { | |
| "facet": { | |
| "name": "series", | |
| "data": "indexed_benchmarks", | |
| "groupby": "task" | |
| } | |
| }, | |
| "data": [ | |
| { | |
| "name": "label", | |
| "source": "series", | |
| "transform": [ | |
| { | |
| "type": "filter", | |
| "expr": "datum.date" | |
| } | |
| ] | |
| } | |
| ], | |
| "marks": [ | |
| { | |
| "type": "line", | |
| "from": {"data": "series"}, | |
| "encode": { | |
| "update": { | |
| "x": { | |
| "scale": "x", | |
| "field": "date" | |
| }, | |
| "y": { | |
| "scale": "y", | |
| "field": "indexed_time" | |
| }, | |
| "stroke": { | |
| "scale": "color", | |
| "field": "task" | |
| }, | |
| "strokeWidth": {"value": 2} | |
| } | |
| } | |
| }, | |
| { | |
| "type": "text", | |
| "from": {"data": "label"}, | |
| "encode": { | |
| "update": { | |
| "x": { | |
| "scale": "x", | |
| "field": "date", | |
| "offset": 2 | |
| }, | |
| "y": { | |
| "scale": "y", | |
| "field": "indexed_time" | |
| }, | |
| "fill": { | |
| "scale": "color", | |
| "field": "task" | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "type": "text", | |
| "from": {"data": "index"}, | |
| "encode": { | |
| "update": { | |
| "y2": { | |
| "field": "commit" | |
| }, | |
| "text": { | |
| "field": "commit", | |
| "baseline": "top" | |
| }, | |
| "fill": {"value": "firebrick"}, | |
| "fontSize": {"value": 14} | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "type": "rule", | |
| "encode": { | |
| "update": { | |
| "x": { | |
| "field": {"group": "x"} | |
| }, | |
| "x2": { | |
| "field": {"group": "width"} | |
| }, | |
| "y": { | |
| "value": 0.5, | |
| "offset": { | |
| "scale": "y", | |
| "value": 0, | |
| "round": true | |
| } | |
| }, | |
| "stroke": {"value": "black"}, | |
| "strokeWidth": {"value": 2} | |
| } | |
| } | |
| }, | |
| { | |
| "type": "rule", | |
| "encode": { | |
| "update": { | |
| "x": { | |
| "scale": "x", | |
| "signal": "indexDate", | |
| "offset": 0.5 | |
| }, | |
| "y2": { | |
| "field": {"group": "height"} | |
| }, | |
| "stroke": {"value": "firebrick"} | |
| } | |
| } | |
| }, | |
| { | |
| "type": "text", | |
| "encode": { | |
| "update": { | |
| "x": { | |
| "scale": "x", | |
| "signal": "indexDate" | |
| }, | |
| "y2": { | |
| "field": {"group": "height"}, | |
| "offset": 15 | |
| }, | |
| "align": {"value": "center"}, | |
| "text": {"signal": "timeFormat(indexDate, '%d %b %Y')"}, | |
| "fill": {"value": "firebrick"} | |
| } | |
| } | |
| } | |
| ], | |
| "legends": [ | |
| { | |
| "fill": "color", | |
| "title": "Task", | |
| "encode": { | |
| "title": { | |
| "update": { | |
| "fontSize": {"value": 14} | |
| } | |
| }, | |
| "labels": { | |
| "interactive": true, | |
| "update": { | |
| "fontSize": {"value": 12}, | |
| "fill": {"value": "black"} | |
| }, | |
| "hover": { | |
| "fill": {"value": "firebrick"} | |
| } | |
| }, | |
| "symbols": { | |
| "update": { | |
| "stroke": {"value": "transparent"} | |
| } | |
| }, | |
| "legend": { | |
| "update": { | |
| "stroke": {"value": "#ccc"}, | |
| "strokeWidth": {"value": 1.5} | |
| } | |
| } | |
| } | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment