Deneb(Vega-lite)水平条形图height的step属性如何动态设置?
动态设置Deneb(Vega-Lite)条形图的step高度
可以实现动态step值,不过不能直接在height.step里引用数据转换后的字段(因为顶层配置的执行时机早于数据转换),需要借助Vega-Lite的**信号(Signal)**系统来实现条件判断。
修改后的配置代码
{ "data": { "name": "dataset" }, "signals": [ { "name": "rowCount", "update": "length(data('dataset'))" }, { "name": "dynamicStep", "update": "rowCount < 10 ? 35 : 20" } ], "height": {"step": {"signal": "dynamicStep"}}, "encoding": { "x": { "field": "Count_Account", "type": "quantitative" }, "y": { "field": "Opportunity Description", "type": "nominal" } }, "layer": [ { "mark": { "type": "bar" } } ] }
关键说明
rowCount信号:通过length(data('dataset'))直接获取数据集的行数,比transform计算更适配顶层配置的依赖场景dynamicStep信号:用三元运算符实现条件判断,行数小于10时step设为35,否则设为20height.step:通过{"signal": "dynamicStep"}引用动态计算的信号值,替代固定数值
内容的提问来源于stack exchange,提问作者trimakichan
相关产品推荐
相关产品推荐

