3.24 PowerBI报告可视化-雷达图:展示分项和整体的强弱

加入 PowerBI自己学 知识星球:下载源文件,边学边练;遇到问题,提问交流,有问必答。

雷达图(Radar Chart),又被叫做网络图、蛛网图,用来体现一个事物在3个或更多指标上的分项和整体强弱程度。从形式上看,雷达图是从中心辐射状的封闭折线,只需要较小的展示空间,借助封闭多边形更适合代表整体,从面积上能直观地表示整体的强弱程度。比如,学生分科成绩、电脑分项性能、城市综合指标、销售KPI概览、人员能力评估等。像如下这张雷达图,很容易看出,马龙在6项评估指标上均达到最大值5,被称为六边形选手。

解决方案  

雷达图要满足这些特点,才算完美:  

1 指标被归一化处理才具备可比性。比如,数学满分150,物理满分100,数学就要除以150乘以100。

2 可放置参考值,如及格值或满分值,至少要有满分值,这样便于评价整体是好是坏。

3 可以按项目排序,也可以按度量值从大到小排序。

4 每个指标的颜色可以设置,数值标签可以显示。

微软原生的雷达图很好用,美中不足的是不能显示度量值的数据标签,三方CLEAR PEAKS SL的Radar Chart带数据标签,但图例和图表会重叠,且不支持按项目排序。最终,还是推荐微软原生的雷达图。

举例  

用雷达图展示各课程的折算平均分。

模型  

成绩表

操作步骤  

STEP 1 选中成绩表,新建计算列-折算成绩,并书写折算平均分、满分、及格度量值。

折算成绩 =

SWITCH(TRUE(),

    [课程]="数学",DIVIDE([成绩],150)*100,

    [课程]="语文",DIVIDE([成绩],150)*100,   

    [课程]="英语",DIVIDE([成绩],150)*100,

    [课程]="物理",DIVIDE([成绩],100)*100,

    [课程]="化学",DIVIDE([成绩],100)*100

)

折算平均分 = AVERAGE('成绩'[折算成绩])

满分 = 100

及格 = 60

STEP 2 点击获取更多视觉对象,搜索radar,选择微软原生的Radar Chart。

STEP 3 在画布中添加Radar Chart并拖入字段,把雷达图项目表的课程放入类别,把平均折算分、及格、满分放在Y轴,下面的字段会出现在图表的下层。

STEP 4 在格式窗格中,打开图例开关,位置顶部居中;数据颜色按需设置;绘制线条是切换单纯线条和阴影区域的开关,数据标签默认为打开,它是类别的名称。

点击图标右上角三个点,可以选择排序方式,按折算平均分升降序或按课程升降序。

拓展

如果再新建一个参照人员表,此表与其他表无关系,仅为选择和用度量值生成一个参照人员的折算平均分,就可以通过选择在雷达图中实现两个人员的对比了。

### 如何在 Power BI 中制作使用雷达 #### 创建雷达的基础步骤 要在 Power BI 中创建雷达,首先需要确保数据源已准备好并导入到 Power BI Desktop 中。Power BI 原生支持雷达功能,可以直接通过可视化选项卡找到该表类型[^1]。 #### 数据准备的要求 为了成功绘制雷达,输入的数据应满足特定结构需求。通常情况下,数据表需至少包含两个字段:一个是类别维度(例如不同的评估标准),另一个是数值度量(例如各项评分)。如果希望进一步增强表效果,还可以引入额外的分类字段来对比不同个体的表现[^3]。 #### 插入与配置雷达 当数据加载完成后,在视觉对象区域选择“雷达”。接着拖拽相应的列至对应的标记框内,“轴”对应于各个维度名称;而“值”则关联具体的测量数值得以呈现出来。对于更复杂的场景比如多组比较,则可把区分各组别的属性放入‘细节’或者‘颜色饱度’参数里去定义[^2]。 #### 自定义样式调整 尽管微软自带版本提供了良好的基础体验,但也存在局限之处——如无法直接添加具体数值作为标注显示等问题。对此,用户可以通过第三方插件 CLEAR PEAKS SL 的 Radar Chart 来弥补这一缺陷,不过需要注意其潜在布局冲突风险以及排序灵活性较差的特点。除此之外,常规自定义选项还包括但不限于改变线条粗细、填充颜色透明度等外观特性设定。 ```python # 示例 Python 伪代码模拟部分逻辑处理流程 (实际操作无需此过程) import pandas as pd data = {'Category': ['A', 'B', 'C'], 'Value': [50, 70, 80]} df = pd.DataFrame(data) def prepare_data_for_radar(df): """Prepare data frame suitable for radar chart.""" normalized_df = df.copy() max_val = df['Value'].max() min_val = df['Value'].min() # Normalize values between 0 and 100 normalized_df['Normalized'] = ((normalized_df['Value'] - min_val) / (max_val - min_val)) * 100 return normalized_df prepared_df = prepare_data_for_radar(df) print(prepared_df) ``` 上述脚本仅作概念说明用途,并非真正应用于 Power BI 当中的必要环节。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值