Python绘制雷达图

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']   # 为了正确显示中文字体,将字体更改为黑体‘SimHei’
data_labels = np.array(['Comments rated 1', 'Comments rated 2', 'Comments rated 3', 'Comments rated 4', 'Comments rated 5'])
n = 6
radar_labels = np.array(['    failed', 'problem', 'powerful',
                      'love   ', 'great', 'feature'])    # 为了美观加了几个空格
data=np.array([[0.85, 0.39, 0.48, 0.28, 0.15],         # 6种职业数据,列表元素为列表
              [0.72, 0.52, 0.54, 0.33, 0.20],
              [0.38, 0.40, 0.49, 0.58, 0.70],
              [0.28, 0.39, 0.45, 0.52, 0.76],
              [0.30, 0.42, 0.54, 0.66, 0.80],
              [0.30, 0.41, 0.55, 0.65, 0.76]])
angles=np.linspace(0, 2*np.pi, n, endpoint=False)       # 将360度平均分为n个部分(有endpoint=False分为6个部分,反之5个部分)
data=np.concatenate((data, [data[0]]))
angles=np.concatenate((angles, [angles[0]]))

fig = plt.figure(facecolor='white', figsize=(10,8))    # 绘制全局绘图区域
plt.subplot(111, polar=True)    # 绘制一个1行1列极坐标系子图,当前位置为1

# plt.figtext(0.52,0.95,'霍兰德人格分析',ha='center',size=20)   #放置标题 ,ha是horizontalalignment(水平对齐方式)的缩写
plt.thetagrids(angles*180/np.pi, radar_labels)       # 放置属性(radar_labels)
plt.plot(angles, data, 'o-', linewidth=1.5, alpha=0.2)      # 连线,画出不规则六边形
plt.fill(angles, data, alpha=0.25)        # 填充,alpha是透明度(自己的实践理解)
legend=plt.legend(data_labels, loc=(0.94, 0.80), labelspacing=0.1)    # 放置图注(右上角)
plt.setp(legend.get_texts(), fontsize='medium')
plt.grid(True)    # 打开坐标网格
plt.show()       # 显示
fig.savefig('雷达图.jpg', dpi=500)

运行效果如下:
Python绘制雷达图_第1张图片

你可能感兴趣的:(matplotlib)