前言
本文介绍如何在Power BI中创建动态散点图,可以自由切换X轴和Y轴的指标。
数据下载:
使用的是CSDN后台的单篇文章分析数据,在“作品数据”页点击“导出数据”。
因为都是累计值,所以用了两天的数据,手动添加“更新时间” 作为区分。 比如1月2号, 和1月3号两天的
1. 创建度量值
这个方法一定要使用度量值才可以动态切换指标。没有度量值在第3步就会报错。
可以创建表格,这里创建度量值表格是为了方便区分。
创建度量值空白表 (可跳过此步骤)
使用公式生成: 度量值 = ROW("度量值",BLANK())
计算指标变化值(差异):
使用 Dax 公式:
评论数差异 = VARX.P( KEEPFILTERS(VALUES('sheet1'[更新时间])), CALCULATE(SUM('sheet1'[评论数])) )
或者 使用快速度量值:
2.创建指标表格
- 手动输入表格数据:
- 增加“指标类型”将所有指标的名称放入,
- 增加“序号”列,排序
创建动态标题内容
- 增加“title”字段,用于生成动态标题:
title = SELECTEDVALUE('指标切片'[指标类型])&"分析"
- 增加"titlexy"字段,用于生成散点图的动态标题:
titlexy = SELECTEDVALUE('x'[指标类型])&"对比"&SELECTEDVALUE('y'[指标类型])
3. 生成X轴y轴表格
X轴表格字段
- 直接使用 relatedtable 复制“指标切片“表格:
x = RELATEDTABLE('指标切片')
- 在表格中增加度量值 x轴,使用if(hasonevalue(), switch(values… )
x = IF(HASONEVALUE('x'[指标类型]),SWITCH(VALUES('x'[指标类型]),"阅读量差异",[阅读量差异],"关注数差异",[关注数差异],"收藏数差异",[收藏数差异],"展现量差异",[展现量差异],"评论数差异",[评论数差异],blank()),[阅读量差异])
Y轴表格字段
使用同样方法生成y切片器:
- 复制表格:
y = RELATEDTABLE('指标切片')
y = if(HASONEVALUE('y'[指标类型]),SWITCH(VALUES('y'[指标类型]),"阅读量差异",[阅读量差异],"关注数差异",[关注数差异],"收藏数差异",[收藏数差异],"展现量差异",[展现量差异],"评论数差异",[评论数差异],blank()),[阅读量差异])
注意:第一个公式是表格生成;第二个是度量值`
最后数据模型如下:
4. 生成散点图
散点图设置:
切片器设置:
增加双轴的切片器,使用对应的“指标类型”字段。X轴切片器用X轴表格的,Y轴用Y表格的。
动态标题设置
- 常规-标题-文本-fx: 选择格式样式和字段