RadarMap雷达图
Background
雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。轴的相对位置和角度通常是无信息的。 雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规则多边形,极坐标图或Kiviat图。它相当于平行坐标图,轴径向排列。
如:
Usage
函数封装
def radarMap(values, feature, labels, title):
"""
input:
- values: n x m的矩阵,n代表有n组数据,m代表数据的维度
- feature: 长度为m的标签,用以标识m个维度
- labels: 长度为n的标签,用以标识n组数据,进而用以标识图例
- title: 标题
output:
none
"""
# 中文和负号的正常显示
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False
#使用ggplot的风格绘图
plt.style.use('ggplot')
N = len(feature)
#设置雷达图的角度,用于平分切开一个平面
angles = np.linspace(0,2*np.pi,N,endpoint=False)
#绘图
fig = plt.figure()
values = np.array(values)
for i in range(values.shape[0]):
value = values[i, :]
#设置为极坐标格式
ax = fig.add_subplot(111, polar=True)
#绘制折线图
ax.plot(angles,value,'o-',linewidth=2, label = labels[i])
ax.fill(angles,value,alpha=0.5)
#添加每个特质的标签
ax.set_thetagrids(angles*180/np.pi,feature)
#设置极轴范围
ax.set_ylim(0,5)
#添加标题
plt.title(title)
plt.legend(loc= 'best')
#增加网格纸
ax.grid(True)
plt.show()
函数使用
# 参数准备
values = [[3.2,2.1,3.5,2.8,3,4],
[2.4,3.1,4.1,1.9,3.5,2.3]]
feature = ['个人能力','QC知识',"解决问题能力","服务质量意识","团队精神","IQ"]
labels=['before', 'after']
title='综合素质评价表'
# 函数调用
radarMap(values, feature, labels, title)
运行结果: