Vega-Lite(Deneb)甜甜圈图问题:聚合分类时文本标记无法同步聚合
问题描述
拥有两个字段:
Medium:子类别Medium-Type:类别
按子类别生成甜甜圈图时,数据标签显示正常;但按类别聚合生成甜甜圈图时,甜甜圈分段表现正常,文本标记无法同步聚合。
数据集示例:
正常效果(子类别甜甜圈图)

异常效果(类别聚合甜甜圈图)

解决方案
问题核心是文本标记层未同步应用与甜甜圈图一致的聚合逻辑。修改Vega-Lite配置时,需确保文本标记的数据源和聚合规则与甜甜圈图完全对齐:
- 全局统一数据聚合:在图表根级别添加
transform完成数据聚合,避免仅在甜甜圈图层单独设置聚合。示例配置片段:
{ "data": {...}, "transform": [ {"aggregate": [{"op": "sum", "field": "数值字段名", "as": "聚合后数值"}], "groupby": ["Medium-Type"]} ], "layer": [ // 甜甜圈图层 { "mark": {"type": "arc", "innerRadius": 50}, "encoding": { "theta": {"field": "聚合后数值", "type": "quantitative"}, "color": {"field": "Medium-Type", "type": "nominal"} } }, // 文本标记层 { "mark": {"type": "text", "radius": 100}, "encoding": { "theta": {"field": "聚合后数值", "type": "quantitative"}, "text": {"field": "聚合后数值", "type": "quantitative"}, "color": {"value": "#000"} } } ] }
- 文本标记引用聚合字段:文本标记的
text和theta字段必须指向聚合后的字段,而非原始数值字段。这样标签会基于聚合后的数据生成,与甜甜圈分段完全匹配。
验证效果
调整后,类别聚合的甜甜圈图文本标记将同步显示聚合后的数值,与分段一一对应。
内容的提问来源于stack exchange,提问作者PBI DataVizzle
相关产品推荐
相关产品推荐

