python雷达图的相似度_python做雷达图

最近经常用到python做雷达图,现在把相关代码记录下来以备以后查看。

(一)在雷达图上表示一个点

import matplotlib.pyplot as plt

import numpy as np

plt.polar(0.25*np.pi,20,"ro",lw=2)

plt.ylim(0,100)

plt.show()

其中,polar的第一个参数是角度,第二个参数是对应的数值。

(二)雷达图上多点连成一个线

import matplotlib.pyplot as plt

import numpy as np

theta = np.linspace(0,2*np.pi,4,endpoint = False)

r = [20,60,40,80]

theta = np.concatenate((theta,[thta[0]]))

r = np.concatenate((r,[r[0]]))

plt.polar(theta,r,"r-",lw=2)

plt.ylim(0,100)

plt.show()

在极坐标图上表示线与表示点的方法类似,即将polar的参数换成列表或数组。有两个地方需要注意,一个是生成theta数组的时候要加endpoint = False,二是由于极坐标的数据需要闭合,因此通过np.concatenate对数据做了闭合处理,即第一个元素和最后一个元素一样。

(三)一个标准的雷达图

import numpy as np

import matplotlib.pyplot as plt

# 正常显示中文

plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'

plt.rcParams['axes.unicode_minus'] = False

#使用ggplot的风格绘图

plt.style.use('ggplot')

#构造数据

values = [3.2,2.1,3.5,2.8,3,4]

values_1 = [2.4,3.1,4.1,1.9,3.5,2.3]

feature = ['个人能力','QC知识',"解决问题能力","服务质量意识","团队精神","IQ"]

N = len(values)

#生成角度

angles = np.linspace(0,2*np.pi,N,endpoint=False)

#数据闭合

values = np.concatenate((values,[values[0]]))

angles = np.concatenate((angles,[angles[0]]))

values_1 = np.concatenate((values_1,[values_1[0]]))

#绘图

fig = plt.figure()

#设置为极坐标格式

ax = fig.add_subplot(111, polar=True)

#绘制折线图

ax.plot(angles,values,'o-',linewidth=2,label='活动前')

ax.fill(angles,values,'r',alpha=0.5)

#填充颜色

ax.plot(angles,values_1,'o-',linewidth=2,label='活动后')

ax.fill(angles,values_1,'b',alpha=0.5)

#通过这一个命令调整背景线

ax.set_thetagrids(angles*180/np.pi,feature)

#设置极轴范围

ax.set_ylim(0,5)

#添加标题

plt.title('活动前后员工状态')

#增加网格纸

ax.grid(True)

plt.show()

参考资料:https://www.cnblogs.com/changfan/p/11799721.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值