python 数据可视化 雷达图绘制

别来无恙 提交于 2019-12-18 01:41:13
"""
author:魏振东
data:2019.12.13
func:雷达图
"""
import numpy as np
import matplotlib.pyplot as plt
#标签
# 团战10,发育7,输出12,KDA9,生存3
labels = np.array(['团战','发育','输出','KDA','生存'])
#数据个数
dataLenth = 5
#数据
data = np.array([10,7,12,9,3])
# 分割圆周长
angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)
# 闭合
data = np.concatenate((data, [data[0]]))
# 闭合
angles = np.concatenate((angles, [angles[0]]))
# 设置画布大小
fig = plt.figure(figsize=(5,5))
# 这里一定要设置为极坐标格式
ax = fig.add_subplot(111, polar=True)

# 画若干个五边形
floor = np.floor(data.min())     # 大于最小值的最大整数
ceil = np.ceil(data.max())       # 小于最大值的最小整数

# np.arange()函数分为一个参数,两个参数,三个参数三种情况
# 1)一个参数时,参数值为终点,起点取默认值0,步长取默认值1。
# 2)两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。
# 3)三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数。

for i in np.arange(floor, ceil +2,2):
    ax.plot(angles, [i] * (int(len(labels)) + 1), '-', lw=0.3, color='black')

# 设置背景坐标系
ax.spines['polar'].set_visible(False)  # 不显示极坐标最外圈的圆
ax.grid(False)  # 不显示默认的分割线
ax.set_yticks([])  # 不显示坐标间隔
# 做极坐标系
ax.plot(angles, data, 'ro-', linewidth=2)
# 做标签
ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")
# 填充
ax.set_title("王者战绩", va='bottom', fontproperties="SimHei")
ax.grid(True)
plt.show()

在这里插入图片描述

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