最近在做python数据分析与可视化方面的项目,记录一下进展与心得。起初听到雷达图并不知所云,mentor告诉我说,想象一下英雄联盟下面的小地图就好了。顿时有了个轮廓,但真正做下来发现两者并不是一码事。
每日三省吾身,必有所得也。
雷达图
多用于企业分析或价值分析的可视化,可以直观的看出所观察指标的优势与劣势。对于优势与劣势区域的相关指标或人员,可以给予针对性的建议。
Demo代码
#雷达图
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
name = [‘语文’,‘数学’,‘英语’,‘物理’,‘化学’] #标签
theta = np.linspace(0,2np.pi,len(name),endpoint=False) #将圆根据标签的个数等比分
value1=[80,80,80,90,100]#具体值
value2=[70,90,90,80,70]
theta = np.concatenate((theta,[theta[0]])) #闭合
value1 = np.concatenate((value1,[value1[0]]))
value2 = np.concatenate((value2,[value2[0]]))
ax = plt.subplot(111,projection = ‘polar’) #构建图例
ax.plot(theta,value1,‘m-’,lw=1,alpha = 0.5) #绘图1
# ax.fill(theta,value1,‘m’,alpha = 0.75) #填充
ax.plot(theta,value2,‘r-’,lw=1,alpha = 0.75) #绘图2
ax.set_thetagrids(theta180/np.pi,name) #替换标签!!!
ax.set_ylim(0,100) #设置极轴的区间
ax.set_theta_zero_location(‘N’) #设置极轴方向
ax.set_title(‘分数’,fontsize = 15,color=‘red’) #添加图描述
plt.show()
效果图
概念:极坐标
极点:以圆的中心作为极点O,
极轴:以0°的方向引一条射线极轴Ox,
极径:选定一个长度单位r
极角:以Ox正方向开始计算角度θ(通常取逆时针方向)
极坐标:以极点O作为圆心,以极昼Ox的方向作为起点,以极径r作为半径,画一个以极角θ的扇形,最终圆规脚定的位置就是极坐标M
首先使用
plt.subplot(111,projection = 'polar')
- 1
函数画一张空白极地图,polar包含两个特定参数,theta(极角θ)和r(极径),代码中r即为具体的value值;当给定多个极角和极轴时,则在图中绘制出多个点,知道极坐标点后,将每个点用线连接起来,就得到了雷达图。然而发现图并没有闭合,就需要构造一个极坐标点,使之与第一个点重叠,得到完整雷达图。
theta = np.concatenate((theta,[theta[0]])) #闭合
- 1
说明:本文是从相关博文的总结与个人项目分享而来,如有疑问,还望各位同仁与前辈指正。
来源:https://blog.csdn.net/weixin_45480773/article/details/99103412