Skip to content

Instantly share code, notes, and snippets.

@keckelt
Created July 29, 2021 10:10
Show Gist options
  • Save keckelt/362823a9bc9226ff4f96ae64bab91fec to your computer and use it in GitHub Desktop.
Save keckelt/362823a9bc9226ff4f96ae64bab91fec to your computer and use it in GitHub Desktop.
Vega: Color Coded Parallel Coordinates
{
"$schema": "https://vega.github.io/schema/vega/v5.json",
"description": "Parallel coordinates plot showing 7 dimensions of automobile statistics.",
"width": 700,
"height": 400,
"padding": 5,
"config": {
"axisY": {
"titleX": -2,
"titleY": 410,
"titleAngle": 0,
"titleAlign": "right",
"titleBaseline": "top"
}
},
"data": [
{
"name": "cars",
"url": "data/cars.json",
"format": {
"type": "json",
"parse": {"Year": "date:%Y-%m-%d"}
},
"transform": [
{ "type": "filter", "expr": "datum.Horsepower && datum.Miles_per_Gallon" },
{ "type": "formula", "as": "Year",
"expr": "isNumber(datum.year) ? datum.year : year(datum.Year)" }
]
},
{
"name": "fields",
"values": [
"Origin",
"Cylinders",
"Displacement",
"Weight_in_lbs",
"Horsepower",
"Acceleration",
"Miles_per_Gallon",
"Year"
]
}
],
"scales": [
{
"name": "ord", "type": "point",
"range": "width", "round": true,
"domain": {"data": "fields", "field": "data"}
},
{
"name": "Cylinders", "type": "linear",
"range": "height", "zero": false, "nice": true,
"domain": {"data": "cars", "field": "Cylinders"}
},
{
"name": "Displacement", "type": "linear",
"range": "height", "zero": false, "nice": true,
"domain": {"data": "cars", "field": "Displacement"}
},
{
"name": "Weight_in_lbs", "type": "linear",
"range": "height", "zero": false, "nice": true,
"domain": {"data": "cars", "field": "Weight_in_lbs"}
},
{
"name": "Horsepower", "type": "linear",
"range": "height", "zero": false, "nice": true,
"domain": {"data": "cars", "field": "Horsepower"}
},
{
"name": "Acceleration", "type": "linear",
"range": "height", "zero": false, "nice": true,
"domain": {"data": "cars", "field": "Acceleration"}
},
{
"name": "Miles_per_Gallon", "type": "linear",
"range": "height", "zero": false, "nice": true,
"domain": {"data": "cars", "field": "Miles_per_Gallon"}
},
{
"name": "Year", "type": "linear",
"range": "height", "zero": false, "nice": true,
"domain": {"data": "cars", "field": "Year"}
},
{
"name": "Origin",
"type": "band",
"domain": {"data": "cars", "field": "Origin"},
"range": "height",
"padding": 1
},
{
"name": "color",
"type": "linear",
"domain": {"data": "cars", "field": "Year"},
"range": {"scheme": "viridis"},
"reverse": true,
"interpolate": "hcl",
"zero": false
}
],
"axes": [
{
"orient": "left", "zindex": 1,
"scale": "Cylinders", "title": "Cylinders",
"offset": {"scale": "ord", "value": "Cylinders", "mult": -1}
},
{
"orient": "left", "zindex": 1,
"scale": "Displacement", "title": "Displacement",
"offset": {"scale": "ord", "value": "Displacement", "mult": -1}
},
{
"orient": "left", "zindex": 1,
"scale": "Weight_in_lbs", "title": "Weight_in_lbs",
"offset": {"scale": "ord", "value": "Weight_in_lbs", "mult": -1}
},
{
"orient": "left", "zindex": 1,
"scale": "Horsepower", "title": "Horsepower",
"offset": {"scale": "ord", "value": "Horsepower", "mult": -1}
},
{
"orient": "left", "zindex": 1,
"scale": "Acceleration", "title": "Acceleration",
"offset": {"scale": "ord", "value": "Acceleration", "mult": -1}
},
{
"orient": "left", "zindex": 1,
"scale": "Miles_per_Gallon", "title": "Miles_per_Gallon",
"offset": {"scale": "ord", "value": "Miles_per_Gallon", "mult": -1}
},
{
"orient": "left", "zindex": 1,
"scale": "Year", "title": "Year", "format": "d",
"offset": {"scale": "ord", "value": "Year", "mult": -1}
},
{
"orient": "left",
"scale": "Origin", "title": "Origin",
"labelPadding": 4,
"offset": {"scale": "ord", "value": "Origin", "mult": -1}
}
],
"marks": [
{
"type": "group",
"from": {"data": "cars"},
"marks": [
{
"type": "line",
"from": {"data": "fields"},
"encode": {
"enter": {
"x": {"scale": "ord", "field": "data"},
"y": {
"scale": {"datum": "data"},
"field": {"parent": {"datum": "data"}}
},
"stroke": {
"scale": "color",
"field": {"parent": "Year"}
},
"strokeWidth": {"value": 1.01},
"strokeOpacity": {"value": 0.3}
}
}
}
]
}
],
"legends": [
{
"stroke": "color",
"title": "Horsepower"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment