我想使用vega-lite生成一个小的倍数图,该图显示一系列状态的变化。每个单独的地块都包含我希望根据第三个变量着色的同一组地理点,具体取决于系列中的哪个地块。
是否可以使用vega-lite根据规则在系列中特定倍数的位置为点着色?
例如,在多个1中,我想为所有值== 1的点涂红色,其余的为灰色;我想用2的倍数将所有值== 2的点涂成红色,其余的涂成灰色;等等
到目前为止,我已经尝试在vega中设置repeat
图表(facet
不好,因为我需要每个绘图中的所有数据),然后对颜色编码使用条件:
"color": {
"condition": {
"test": "datum.rdb == ???",
"value": "#ff0000"
},
"value":"#aaaaaa" // grey if condition not met
但是我不知道???
应该是什么,以便获取倍数内每个图的编号或标识符。
答案 0 :(得分:0)
最简单的方法可能是通过多面图层图。这个想法是,您在每个面板中以灰色为背景绘制整个数据集,并在该相同数据集的副本上叠加颜色。
以下是使用汽车数据集(vega editor link)的示例:
{
"data": {"url": "data/cars.json"},
"facet": {"type": "nominal", "field": "Origin"},
"columns": 3,
"spec": {
"encoding": {
"x": {"type": "quantitative", "field": "Horsepower"},
"y": {"type": "quantitative", "field": "Miles_per_Gallon"}
},
"layer": [
{
"data": {"url": "data/cars.json"},
"mark": {"type": "point", "color": "lightgray"}
},
{
"mark": "point",
"encoding": {"color": {"type": "nominal", "field": "Origin"}}
}
]
}
}
请注意,数据是在两个地方指定的:背景层指定完整的数据集,而前景层则从顶层继承多面数据集。