Vega-Lite:访问重复频道的嵌套字段
Vega-Lite: Access nested fields of repeat channel
我想用不同分位数范围(百分位数之间的跨度:5 到 95、10 到 90 和 25 到 75)的三个误差带可视化某些数据随时间变化的中值。一个天真的解决方案是手动指定三层(效果很好)。但是,我找不到通过 repeat
.
以更简洁的方式指定它的方法
如何使用本例中的重复频道:
{
"repeat":{
"layer":[
{"low":"p5", "high":"p95"},
{"low":"p10", "high":"p90"},
{"low":"p25", "high":"p75"}
]
},
"spec":{
"mark":{"opacity":0.15, "type":"errorband"},
"encoding":{
"x":{"field":"time"},
"y":{"field":{"repeat":"layer.low"}, "type":"quantitative"},
"y2":{"field":{"repeat":"layer.high"}}
},
"layer":[{"mark":{"type":"line"}, "encoding":{"x":{"field":"time"}, "y":{"field":"p50"}}}]
}
}
当然,这不起作用,因为 layer.low
不是重复频道。只有layer
频道。
- 如何访问此重复通道的嵌套字段(每个层的
low
和 high
)?
- 是否有某种“最佳实践”如何指定对字段的重复视图?
repeat.layer
接受 only a list of strings,而不是嵌套对象列表。 Vega-Lite 语法目前不提供任何自然的方式来通过重复运算符表达你想做的事情。最好的方法是手动对图表进行分层。
我想用不同分位数范围(百分位数之间的跨度:5 到 95、10 到 90 和 25 到 75)的三个误差带可视化某些数据随时间变化的中值。一个天真的解决方案是手动指定三层(效果很好)。但是,我找不到通过 repeat
.
如何使用本例中的重复频道:
{
"repeat":{
"layer":[
{"low":"p5", "high":"p95"},
{"low":"p10", "high":"p90"},
{"low":"p25", "high":"p75"}
]
},
"spec":{
"mark":{"opacity":0.15, "type":"errorband"},
"encoding":{
"x":{"field":"time"},
"y":{"field":{"repeat":"layer.low"}, "type":"quantitative"},
"y2":{"field":{"repeat":"layer.high"}}
},
"layer":[{"mark":{"type":"line"}, "encoding":{"x":{"field":"time"}, "y":{"field":"p50"}}}]
}
}
当然,这不起作用,因为 layer.low
不是重复频道。只有layer
频道。
- 如何访问此重复通道的嵌套字段(每个层的
low
和high
)? - 是否有某种“最佳实践”如何指定对字段的重复视图?
repeat.layer
接受 only a list of strings,而不是嵌套对象列表。 Vega-Lite 语法目前不提供任何自然的方式来通过重复运算符表达你想做的事情。最好的方法是手动对图表进行分层。