Python雷达图详解
- 行业动态
- 2024-04-14
- 1
雷达图(Radar Chart)是一种用于显示多变量数据的图形表示方法,它将多个变量的数据以不同的角度和半径绘制在一个圆形的图表上,通过连接各个数据点形成多边形,从而直观地展示各个变量之间的相对关系,雷达图常用于评估和比较多个指标的表现,如企业绩效、员工评价等。
在Python中,我们可以使用matplotlib库来绘制雷达图,以下是一个简单的雷达图绘制示例:
1、我们需要安装matplotlib库,在命令行中输入以下命令进行安装:
pip install matplotlib
2、接下来,我们编写一个绘制雷达图的函数:
import numpy as np import matplotlib.pyplot as plt def radar_chart(data, labels): # 计算角度和半径 angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist() data = np.concatenate((data, [data[0]])) # 闭合数据,使多边形闭合 angles += angles[:1] # 闭合角度,使多边形闭合 radius = np.sqrt(np.dot(data, data) / len(data)) angles = angles[:1] # 去掉最后一个闭合角度 # 绘制雷达图 fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True)) ax.fill(angles, data, color='red', alpha=0.25) ax.set_yticklabels([]) # 隐藏y轴刻度 ax.set_xticks(angles[:1]) # 隐藏最后一个闭合角度的x轴刻度 ax.set_xticklabels(labels) plt.show()
3、使用上述函数绘制一个简单的雷达图:
data = [5, 7, 3, 8, 4] labels = ['A', 'B', 'C', 'D', 'E'] radar_chart(data, labels)
以上代码将绘制一个包含5个指标(A、B、C、D、E)的雷达图,每个指标的值分别为5、7、3、8、4,雷达图将以红色填充多边形区域。
4、如果我们希望调整雷达图的颜色、透明度等样式,可以在radar_chart函数中添加相应的参数和设置:
def radar_chart(data, labels, color='red', alpha=0.25): # ...省略其他代码... ax.fill(angles, data, color=color, alpha=alpha) # ...省略其他代码...
5、我们还可以使用plt.title()、plt.xlabel()、plt.ylabel()等函数为雷达图添加标题、坐标轴标签等:
def radar_chart(data, labels, title='', xlabel='', ylabel=''): # ...省略其他代码... ax.set_title(title) ax.set_xlabel(xlabel) ax.set_ylabel(ylabel) plt.show()
6、我们可以使用numpy库生成一些随机数据,并使用我们的radar_chart函数绘制一个更复杂的雷达图:
import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties def radar_chart(data, labels, title='', xlabel='', ylabel=''): # ...省略其他代码... pass 生成随机数据 np.random.seed(0) data = np.random.randint(1, 10, size=(5, 5)).tolist()[0] + [np.mean([np.sum(row) for row in data])] # 闭合数据,使多边形闭合 labels = ['A', 'B', 'C', 'D', 'E'] + ['Mean'] # 添加均值标签 title = 'Example Radar Chart' # 添加标题 xlabel = '' # 删除x轴标签 ylabel = '' # 删除y轴标签 radar_chart(data, labels, title, xlabel, ylabel)
以上代码将生成一个包含5个指标(A、B、C、D、E)和一个均值指标的雷达图,每个指标的值均为1到9的随机整数,雷达图将以红色填充多边形区域,并添加标题“Example Radar Chart”。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/285753.html