【可视化分析】雷达图

我是研究僧i 提交于 2019-11-26 20:40:23

最近在做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


说明:本文是从相关博文的总结与个人项目分享而来,如有疑问,还望各位同仁与前辈指正。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!