雷达图的4种绘制方法
共 4242字,需浏览 9分钟
· 2021-06-28
雷达图是通过多个离散属性比较对象的最直观工具,掌握绘制雷达图的方法将会为生活和工作带来乐趣。本例数据来源于网络,某大学本科一年级不同分院学生在五种核心通识能力方面的数据,使用多个工具来绘制多级雷达图,即在一组同心圆上填充不规则五边形,其每个顶点到圆心的距离代表分院学生的某种能力。
本文通过Excel、PowerBI和Python分别绘制雷达图,其中比较有意思的是在PowerBI里运行Python代码,绘制雷达图。下面我们就来一起学习吧。
方法一 Excel绘制
最简单的方法便是使用Excel绘制雷达图,绘图步骤如下图所示,选中数据,插入图表,由于雷达图不是最常用的图表,需要展开所有图表才能找到,展开方式如下图所示。
![](https://filescdn.proginn.com/44e0b926112e7573cd674b0f1d2f3c6f/3e086820ea459cae4fe75c19ad7bb5e5.webp)
这里需要注意的是,第6步选择类型后,下面有两个雷达图可供选择,不仔细看,很容易混淆,他类型、颜色等都是一样的。但他们分别将行和列作为维度,即行列倒置,选择时需要仔细看清楚你需要的那个。
选择结束后,就跟其他图表一样了,调整格式即可,如颜色、图例排布,字体大小等等,结果如下。
![](https://filescdn.proginn.com/16398fd442d53410fd4bd75430bcee57/861ff304479ac75fc07a6c550e9449ae.webp)
方法二 PowerBI绘制
PowerBI(简称PB)其实是Excel的升级版中的一个,在Excel增强版里有PowerQuery(简称PQ)功能,这里使用的是PowerBI桌面版,其包含PowerQuery。
首先导入数据到PowerBI内,数据导入有多种方法,因为这里数据量不多,我直接使用复制粘贴的方法。首先创建表,然后直接粘贴数据,最后加载即可。
![](https://filescdn.proginn.com/3a2291406d622bc2171d4ca65d1404d4/d36db8fc1c697d71d080ee7115e557c3.webp)
如果你是第一次绘制雷达图,这一步就是必须的。由于雷达图不是常用的图表,在PB默认的可视化图表选项里没有,所以需要在AppSource里导入视觉对象。具体操作如下图所示,搜索框里输入【Radar Chart】,找到对应的雷达图对象,直接点添加即可。
![](https://filescdn.proginn.com/8e5fe6ce8c184ad9929f77d98721a753/7581328074252991282a4c0893f02dde.webp)
如果你已经有雷达图,即可直接绘图。先在可视化图表里找到并选择雷达图小图标,再选择数据,最后设置图表样式,按照自己的需求定制样式。
这里的绘图方法也较简单,而且但从样式看,也似乎比在Excel里的漂亮许多。此外,在PB里还可以跟其他图表联动,包括各种切片,这里有兴趣的朋友可以研究研究,这里就不做过多的介绍了。
![](https://filescdn.proginn.com/eb9a0405b8a07dc548330364d64d0f48/701da5dc060d92e3e53cfda8b9c7f9b9.webp)
经过部分样式的调整,最后得到如下的结果。大家看看,这种方式你是否钟意他呢?
![](https://filescdn.proginn.com/6283d3d04c561edc60505154cd58d1d0/8854967d6b0c80f4197fa202ed53cd29.webp)
方法三 Python绘制
以上两个方法都不需要编程,就能得到精美的雷达图。对于不喜欢或不擅长编程的小伙伴们,可以选择上述两种方式。下面介绍的两种方式,都是需要编程的。不过只要你稍微掌握Python或R语言,这个雷达图还是可以信手捏来的。(下面以Python为例)
下面用绘图模块matplotlib绘制雷达图,具体代码如下所示。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# import matplotlib
# matplotlib.rcParams['font.family']='SimHei'
# matplotlib.rcParams['font.sans-serif']='SimHei'
dataset = pd.DataFrame(data=[[5, 6, 8, 6, 7],
[9, 6, 5, 7, 6],
[4, 8, 9, 8, 7],
[7, 8, 6, 7, 8],
[8, 7, 6, 7, 6]],
index=['表达与沟通', '团队合作','分析与综合信息 ','创新思维','批判性思维'],
columns=['金融学院','文化传媒学院','信息学院 ','管理学院 ','人文教育学院'])
radar_labels=dataset.index
nAttr=5
data=dataset.values #数据值
data_labels=dataset.columns
# 设置角度
angles=np.linspace(0,2*np.pi,nAttr,
endpoint= False)
data=np.concatenate((data, [data[0]]))
angles=np.concatenate((angles, [angles[0]]))
# 设置画布
fig=plt.figure(facecolor="white",figsize=(10,6))
plt.subplot(111, polar=True)
# 绘图
plt.plot(angles,data,'o-',
linewidth=1.5, alpha= 0.2)
# 填充颜色
plt.fill(angles,data, alpha=0.25)
plt.thetagrids(angles[:-1]*180/np.pi,
radar_labels,1.2)
plt.figtext(0.52, 0.95,'大学生通识能力分析',
ha='center', size=20)
# 设置图例
legend=plt.legend(data_labels,
loc=(1.1, 0.05),
labelspacing=0.1)
plt.setp(legend.get_texts(),
fontsize='large')
plt.grid(True)
# plt.savefig('tongshi.png')
plt.show()
结果展示。
![](https://filescdn.proginn.com/eb3021a53655ce97daa84eaf6d5ec693/e586fc385c0c8c6d3e343dd700801de0.webp)
运用Python绘制雷达图灵活度更大,你可以任意配置你所需要的样式,只要你对代码足够熟悉。
方法四 Python + PowerBI绘制
下面再介绍一种比较有意思绘图方法,就是在PowerBI内运行Python代码,将两者集成在一起。
在使用这个功能之前,你需要确认下本机中是否有Python环境,如果没有,也比较简单,直接安装一个anaconda,PowerBI会自动检测Python环境。
如果你已经有这个环境,你就可以先将数据导入,在来通过Python绘制图形。
![](https://filescdn.proginn.com/2ef3dfb18198beebf90c0015c94400bd/db0c5c3b9df2318cba955884fb49775f.webp)
具体操作步骤我录了一个小视频,大家可以感受下。这里不得不说PowerBI的强大。这里得到的结果与在jupyter里绘制的图形长得一模一样。他就是跟PowerBI集成到一起了,小编认为,在PowerBI中可以用Python代码绘制PowerBI不能绘制,或难以绘制的一些复杂图形,作为PowerBI的一个补充,这样才是强强联合,否则就是本末倒置了。
![](https://filescdn.proginn.com/9e446cb31dd824d60cf3b643c8c7d020/5abd4ac9492d9c179da3fcb314badcbd.webp)
OK,今天就介绍到这里,大家可以根据自己的特长或者爱好选择适合自己的绘图方法。
![音符](https://filescdn.proginn.com/af74c224f135a0626f08848c1ea96bb2/96ba5f2d8d6d52261f78ef1793854d9c.webp)
![](https://filescdn.proginn.com/28b23f1f67c10ba74dbb72878f55e1fd/0797be4e0f0f9cb87b6ec2462b4346ab.webp)
![](https://filescdn.proginn.com/11c67712e55f9707b4d8d0f266d113e6/1a36eafbcac0412f9f2b7b50a8774fa8.webp)
![](https://filescdn.proginn.com/eeff0a97428d727bf2d62a21f67037d1/23f4e2cdeaed0971c55a2f5ff4447c43.webp)
![](https://filescdn.proginn.com/a61b696fabb1d1e7102d13c3b80224d3/962e5cad69b57e422a11de8ce7222bab.webp)