基于Matplotlib的五边形雷达图(Radar chart)
matplotlib库是Python中绘制二维、三维图表的数据可视化工具。它具有一下特点
1、使用简单绘图语句实现复杂绘图效果;
2、以交互式操作实现渐趋精细的图形效果;
3、使用嵌入式的LaTex输出具有印刷级别的图表、科学表达式和符号文本;
4、对图表的组成元素实现精细化控制
绘制雷达图的环境
操作系统:本图是在windows操作系统下实现的还没有成功的将代码移植到嵌入式设备上
运行的软件为:Pycharm
Python的版本为Python3.7
matplotlib的版本为3.0.0rc1
结果图
背景色设置为了’#87CEEB’
题目为xxxxxxx
用到的库
‘’’
import numpy as np
import matplotlib.pyplot as plt
‘’’
具体代码
‘’’
import numpy as np
import matplotlib.pyplot as plt
def plot_radar(data):
criterion = [1, 1, 1, 1, 1, 1] # 基准雷达图
angles = np.linspace(0, 2 * np.pi, 5, endpoint=False)
angles = np.concatenate((angles, [angles[0]]))
#print(criterion)
#print(angles)
fig = plt.figure(facecolor='#87CEEB') # 创建画板并填充颜色
ax = fig.add_subplot(111, polar=True,) # 设置坐标为极坐标
# 绘制三个五边形
floor = 0
ceil = 2
labels = np.array(['x1', 'x2', 'x3', 'x4', 'x5'])
# 绘制五边形的循环
for i in np.arange(floor, ceil + 0.5 ,0.5):
ax.plot(angles, [i] * (6), '-', lw= 0.5, color='black')
for i in range(5):
ax.plot([angles[i], angles[i]], [floor, ceil], '-',lw=0.5, color='black')
# 绘制雷达图
ax.plot(angles, criterion, 'b-', lw=2, alpha=0.4)
ax.fill(angles, criterion, facecolor='b', alpha=0.3) #填充
ax.plot(angles, data, 'b-', lw=2, alpha=0.35)
ax.fill(angles, data, facecolor='b', alpha=0.25)
ax.set_thetagrids(angles * 180 / np.pi, labels)
ax.spines['polar'].set_visible(False)#不显示极坐标最外的圆形
ax.set_theta_zero_location('N')#设置极坐标的起点(即0度)在正上方向
ax.grid(False)# 不显示分隔线
ax.set_yticks([]) # 不显示坐标间隔
ax.set_title('xxxxxxxxxxxx', va='bottom', fontproperties='SimHei')
ax.set_facecolor('#87ceeb') # 填充绘图区域的颜色
# 保存文png图片
plt.subplots_adjust(left=0.09, right=1, wspace=0.25, hspace=0.25, bottom=0.13, top=0.91)
plt.savefig('a_1.png')
plt.show()
data = [0.8, 0.9, 1.2, 1.0, 1.5, 0.8]
plot_radar(data)
‘’’