使用了《方舟指令》中角色洛天依、乐正绫的属性数据
数据写在代码中,数据来源:
评级与数值转换关系:
评级 | C | B | B+ | A | A+ | S | SS |
数值 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
数据整理:
3,5,3,4,6,4 4,3,6,5,3,5
代码:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
tag = ['生命', '速度', '物攻', '物防', '魔攻', '魔防'] # 标签
theta = np.linspace(0, 2 * np.pi, len(tag), endpoint=False) # 将圆根据标签的个数等比分
tag = np.concatenate((tag,[tag[0]])) # 解决报错
value_lty = [3,5,3,4,6,4] # 洛天依数据
value_yzl = [4,3,6,5,3,5] # 乐正绫数据
theta = np.concatenate((theta, [theta[0]])) # 闭合
value_lty = np.concatenate((value_lty, [value_lty[0]])) # 闭合
value_yzl = np.concatenate((value_yzl, [value_yzl[0]])) # 闭合
ax = plt.subplot(111, projection='polar') # 构建图例
ax.plot(theta, value_lty, "#66CCFF", lw=1, alpha=0.75) # 绘洛天依图
ax.plot(theta, value_yzl, "#FF0000", lw=1, alpha=0.75) # 绘乐正绫图
ax.fill(theta, value_lty, "#66CCFF", alpha=0.35) # 填充
ax.fill(theta, value_yzl, "#FF0000", alpha=0.35) # 填充
plt.thetagrids(theta * 180 / np.pi, tag) # 替换标签名称
ax.set_ylim(1, 7) # 设置极轴的区间
plt.yticks([1, 2, 3, 4, 5, 6, 7], ['C', 'B', 'B+', 'A', 'A+', 'S', 'SS']) # 设置y轴刻度名称
ax.set_theta_zero_location('N') # 设置极轴方向
ax.set_title('六维图', fontsize=20) # 添加图描述
plt.legend(['洛天依', '乐正绫'], loc='best') # 添加图例
plt.show()
输出结果:
参考资料:
Python笔记—matplotlib雷达图_assassin_sword的博客-CSDN博客
Python绘制雷达图 - 酸菜鱼学Python - 博客园
Matplotlib:设置坐标轴范围,刻度,位置,自定义刻度名称,添加数据标签_错位的梦寐的博客-CSDN博客_matplotlib坐标轴名称位置