Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

v-stephen-msft

Power BI 中呈现范围值的折线图

场景:

有时候我们可能会遇到这样的需求:不仅要汇总和分析数据的趋势,还要知道某一点的值是否超出正常范围。一般来说,我们会选择“分区图”视觉对象来做。但当最小值不为零时,分区图呈现的效果不符合我们的要求。而且Power BI中目前不支持将值的范围添加到折线上。另外我还尝试了“堆积面积图”视觉对象,并且对参数进行了一些修改,虽然可以得到类似的效果,但仍然不完美。经过一番研究,我发现当结合R和Power BI时,可以达到更好的效果。我的测试过程如下。

 

示例数据:

vstephenmsft_0-1738831265162.png

期望结果:

vstephenmsft_1-1738831295222.png

方法一:在Power BI Desktop中使用堆积面积图视觉对象

1.创建一个堆积面积图视觉对象并且对字段进行排序

vstephenmsft_2-1738831307785.png

2.在“设置对象格式”-> “行”中修改颜色

将“Min”字段的颜色设置为白色

将“Max”字段和“Value”字段设置成相同的颜色

vstephenmsft_3-1738831337821.png

很明显,“Max”列的边界无法删除。

方法二:使用R的Polygon()函数

准备工作:

1.下载R:我们可以从 链接 下载安装免费版的R(最新版本:R-4.4.2 for Windows(83 megabytes, 64 bit))

 

2.在R中安装所需的软件包

启动R应用程序

复制以下代码安装软件包,然后选择一个最近的CRAN镜像

install.packages("reshape2") 

vstephenmsft_4-1738831451302.png

 

3.在Power BI Desktop中启用R脚本visual。关于更多细节,请参阅这篇文档:

使用 R 创建 Power BI 视觉对象 - Power BI | Microsoft Learn

 

4.请检查官方文档中提到的限制

 

操作:

1.将示例数据导入Power BI Desktop

 

2.创建一个R脚本Visual

将所有要用到的列全部拖入R脚本Visual的“值”中

我们可以看到使用polygon()函数获得的结果。

#重新导入数据并将第一列的值设置为行变量 

a<-read.table("你的文件路径",sep=",",header=T) 

xx<-c(min(a$Date):max(a$Date),max(a$Date):min(a$Date)) #创建一个向量 

yy<-c(a$Min,rev(a$Max)) #创建另一个向量 

plot(a$Date,a$Value,type = "o",col ="blue",ylim=c(0,50),xlab="Year",ylab="Value") #创建折线图 

polygon(x = xx,                           # 多边形的 X 坐标 

        y = yy,                             # 多边形的 y 坐标 

        col = rgb(255,0,0,50,maxColorValue=255),         # 多边形颜色 

        border = "NA")                                   # 多边形边界的颜色 

vstephenmsft_5-1738831644795.png

总结:

从两张图片中我们可以明显看出,R在增加范围区域方面有一定的优势。它不仅可以绘制指定范围,还可以生成带有百分比的置信区间范围。

希望Power BI能尽快引入相应功能,让用户可以更加方便地进行数据分析。

 

作者:Yuna

审核:Ula Huang, Kerry Wang

翻自:Xinyi Xu