You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Deneb PowerBI人口金字塔:设置轴domainMax为男女数据集最大值

优化PowerBI Deneb人口金字塔的轴域最大值设置

当前你通过汇总男女全部数据定义domainMax,可改为取所有男/女性年龄组的最大聚合值,提升图表空间利用率。以下是修改后的配置:

{
  "data": {"name": "dataset"},
  "transform": [
    {
      "calculate": "datum.Geschlecht == 'männlich' ? 'männlich' : 'weiblich'",
      "as": "gender"
    },
    // 按性别+年龄组分组,计算每组的人口数
    {
      "aggregate": [
        {"op": "sum", "field": "KPI-Set Display", "as": "GroupTotal"}
      ],
      "groupby": ["gender", "Altersgruppe", "Sortierung"]
    },
    // 提取所有分组中的最大值作为全局轴域上限
    {
      "joinaggregate": [
        {"op": "max", "field": "GroupTotal", "as": "MaxVal"}
      ]
    }
  ],
  "spacing": 0,
  "hconcat": [
    {
      "transform": [
        {"filter": {"field": "gender", "equal": "weiblich"}}
      ],
      "title": "",
      "mark": {"type": "bar", "tooltip": true},
      "encoding": {
        "y": {
          "field": "Altersgruppe",
          "axis": null,
          "sort": {"field": "Sortierung", "order": "descending"}
        },
        "x": {
          "field": "GroupTotal",
          "title": "weiblich & unbekannt",
          "scale": {"domainMax": {"expr": "data('data_0')[0].MaxVal"}},
          "axis": {"format": "s"},
          "sort": "descending"
        }
      }
    },
    {
      "width": 20,
      "view": {"stroke": null},
      "mark": {"type": "text", "align": "center"},
      "encoding": {
        "y": {
          "field": "Altersgruppe",
          "type": "ordinal",
          "axis": null,
          "sort": {"field": "Sortierung", "order": "descending"}
        },
        "text": {"field": "Altersgruppe", "type": "nominal"}
      }
    },
    {
      "transform": [
        {"filter": {"field": "gender", "equal": "männlich"}}
      ],
      "title": "",
      "mark": {"type": "bar", "tooltip": true},
      "encoding": {
        "y": {
          "field": "Altersgruppe",
          "axis": null,
          "sort": {"field": "Sortierung", "order": "descending"}
        },
        "x": {
          "field": "GroupTotal",
          "title": "männlich",
          "scale": {"domainMax": {"expr": "data('data_0')[0].MaxVal"}},
          "axis": {"format": "s"},
          "sort": "ascending"
        }
      }
    }
  ]
}

修改说明

  • 提前分组聚合:新增aggregate步骤,按gender和Altersgruppe(年龄组)分组计算每组的人口总数,避免子图表重复聚合计算。
  • 取全局最大分组值:通过joinaggregate提取所有分组中的最大值MaxVal,替代原来的全部数据总和,确保轴域上限匹配实际最长条形的长度。
  • 简化子图表编码:子图表的x轴直接使用提前计算好的GroupTotal字段,无需再次聚合,提升性能。

这样设置后,图表的x轴会自动适配男女年龄组中的最大人口数,让条形长度充分利用显示空间,避免因轴域过大导致图表内容过于紧凑。

内容的提问来源于stack exchange,提问作者NaHolla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:55:09