Reputation: 3052
The data I use for line chart carries property that identifies to which area it belongs (nominal type). I'd like to plot a single line for the data, but add colored shading showing different areas (area designation is continuous throughout data, i.e. it is not possible to have data points like this: area1
, area1
, area2
, area1
).
Here's the spec and chart in Vega editor:
{
"mark": "line",
"data": {
"values": [
{
"timestamp": 0,
"area": 1,
"value": 39.005653381347656,
"series": "data1"
},
{
"timestamp": 127,
"area": 1,
"value": 39.005653381347656,
"series": "data1"
},
{
"timestamp": 163,
"area": 1,
"value": 39.001007080078125,
"series": "data1"
},
{
"timestamp": 1001,
"area": 1,
"value": 39.001007080078125,
"series": "data1"
},
{
"timestamp": 1144,
"area": 1,
"value": 39.001007080078125,
"series": "data1"
},
{
"timestamp": 1361,
"area": 1,
"value": 39.68376922607422,
"series": "data1"
},
{
"timestamp": 2000,
"area": 1,
"value": 39.68376922607422,
"series": "data1"
},
{
"timestamp": 2161,
"area": 1,
"value": 39.68376922607422,
"series": "data1"
},
{
"timestamp": 2561,
"area": 1,
"value": 39.18102264404297,
"series": "data1"
},
{
"timestamp": 3004,
"area": 1,
"value": 39.18102264404297,
"series": "data1"
},
{
"timestamp": 3161,
"area": 1,
"value": 39.18102264404297,
"series": "data1"
},
{
"timestamp": 3760,
"area": 1,
"value": 39.0322151184082,
"series": "data1"
},
{
"timestamp": 4006,
"area": 4,
"value": 39.0322151184082,
"series": "data1"
},
{
"timestamp": 4179,
"area": 4,
"value": 39.0322151184082,
"series": "data1"
},
{
"timestamp": 4960,
"area": 4,
"value": 39.005733489990234,
"series": "data1"
},
{
"timestamp": 5001,
"area": 4,
"value": 39.005733489990234,
"series": "data1"
},
{
"timestamp": 5192,
"area": 4,
"value": 39.005733489990234,
"series": "data1"
},
{
"timestamp": 6001,
"area": 4,
"value": 39.005733489990234,
"series": "data1"
},
{
"timestamp": 6160,
"area": 4,
"value": 38.42289733886719,
"series": "data1"
},
{
"timestamp": 6209,
"area": 4,
"value": 38.42289733886719,
"series": "data1"
}
]
},
"encoding": {
"x": {
"field": "timestamp",
"type": "quantitative"
},
"y": {
"field": "value",
"type": "quantitative",
"title": "statistic"
},
"color": {
"field": "series",
"type": "nominal"
}
},
"width": 900,
"height": 400,
"config": {
"axis": {
"grid": true,
"gridColor": "#dedede"
}
},
"background": "#ffffff"
}
Update
Here's what I'm trying to achieve:
Upvotes: 1
Views: 380
Reputation: 30219
{
"data": {
"values": [
{
"timestamp": 0,
"area": 1,
"value": 39.005653381347656,
"series": "data1"
},
{
"timestamp": 127,
"area": 1,
"value": 39.005653381347656,
"series": "data1"
},
{
"timestamp": 163,
"area": 1,
"value": 39.001007080078125,
"series": "data1"
},
{
"timestamp": 1001,
"area": 1,
"value": 39.001007080078125,
"series": "data1"
},
{
"timestamp": 1144,
"area": 1,
"value": 39.001007080078125,
"series": "data1"
},
{
"timestamp": 1361,
"area": 1,
"value": 39.68376922607422,
"series": "data1"
},
{
"timestamp": 2000,
"area": 1,
"value": 39.68376922607422,
"series": "data1"
},
{
"timestamp": 2161,
"area": 1,
"value": 39.68376922607422,
"series": "data1"
},
{
"timestamp": 2561,
"area": 1,
"value": 39.18102264404297,
"series": "data1"
},
{
"timestamp": 3004,
"area": 1,
"value": 39.18102264404297,
"series": "data1"
},
{
"timestamp": 3161,
"area": 1,
"value": 39.18102264404297,
"series": "data1"
},
{
"timestamp": 3760,
"area": 1,
"value": 39.0322151184082,
"series": "data1"
},
{
"timestamp": 4006,
"area": 4,
"value": 39.0322151184082,
"series": "data1"
},
{
"timestamp": 4179,
"area": 4,
"value": 39.0322151184082,
"series": "data1"
},
{
"timestamp": 4960,
"area": 4,
"value": 39.005733489990234,
"series": "data1"
},
{
"timestamp": 5001,
"area": 4,
"value": 39.005733489990234,
"series": "data1"
},
{
"timestamp": 5192,
"area": 4,
"value": 39.005733489990234,
"series": "data1"
},
{
"timestamp": 6001,
"area": 4,
"value": 39.005733489990234,
"series": "data1"
},
{
"timestamp": 6160,
"area": 4,
"value": 38.42289733886719,
"series": "data1"
},
{
"timestamp": 6209,
"area": 4,
"value": 38.42289733886719,
"series": "data1"
}
]
},
"encoding": {
"x": {"field": "timestamp", "type": "quantitative"},
"y": {"field": "value", "type": "quantitative", "title": "statistic"},
"color": {"field": "series", "type": "nominal"}
},
"layer": [
{"mark": "line"},
{
"mark": {"type": "rect", "opacity": 0.2},
"encoding": {
"x": {"field": "timestamp", "aggregate": {"argmax": "timestamp"}, "axis":{"title":""} },
"x2": {"field": "timestamp", "aggregate": {"argmin": "timestamp"}},
"y": {"value": 0},
"color": {"field": "area", "type": "nominal"}
}
}
],
"width": 900,
"height": 400,
"config": {"axis": {"grid": true, "gridColor": "#dedede"}},
"background": "#ffffff"
}
Upvotes: 1