Power BI 直方图的三个应用案例
直方图(Histogram)是一种用于展示数据分布的统计图形,通过将数据分成若干区间(称为“组”或“箱子”),并用柱形的高度表示每个区间内数据的频数(或频率)。
直方图的X轴表示数据的取值范围,被划分为连续的、等宽的区间(例如:0-10、10-20等);Y轴表示频数(各区间内数据出现的次数)或频率(频数占总数据的比例)。
以下是一个Power BI 直方图样例,展示了不同价位带的产品数量分布:
这个直方图有三个优点:
1. X轴标签不同于柱形图,不是和柱子居中对齐,而是显示在分界点;
2. X轴分组的等宽区间无需DAX计算,可任意修改;
3. X轴既可以是连续的维度(比如上图的零售价),也可以是任意连续的度量值(比如销售额,增长率,达成率、利润率等)
实现方法为vega-lite,假设有以下产品资料表:
在视觉对象库加载Deneb视觉对象,拖入以下两列:
拖入的两个字段,一个指明统计什么的分布,本例为产品ID,一个用来指明依据什么计算分布,本例为零售价。
接着在画布上点击Deneb右上角的...,选择编辑-空白vega-lite,粘贴以下代码:
代码语言:javascript代码运行次数:0运行复制{
"data": {"name": "dataset"},
"mark": {
"type": "bar",
"tooltip": true,
"color": "deepskyblue" //颜色按报表主题自行调整
},
"encoding": {
"x": {
"bin": {"maxbins": 20}, // 自动分箱,最多多少区间
"field": "零售价",
"type": "quantitative",
"axis": {
"title": "零售价",
"labelFontSize": 14
}
},
"y": {
"aggregate": "count", // 公众号wujunmin
"type": "quantitative",
"axis": {
"title": "频数",
"labelFontSize": 14,
"format": "d"
}
}
},
"config": {
"axis": {
"grid": false
},
"view": {
"stroke": "transparent"
}
}
}
接着点击应用按钮,返回报表即完工:
代码中的maxbins(第十行),是用来调整最大分箱区间,比如调整为30,划分更细:
接下来介绍第二个场景,Deneb拖入维度员工姓名,拖入度量值销售业绩:
就可以得到不同业绩贡献的员工分布:
最后再举个帕累托分析的例子,我们可以滚动计算产品的累计贡献,放入表格效果如下:
放入折线和柱形图:
如果放入Deneb:
同样使用本文最开始的直方图代码,可以看到分段的产品品种数: