一、导入matplotlib库
import numpy as np
import matplotlib.pyplot as plt
二、输入同学各科目成绩数据
# 1.准备大数据专业三位同学各科目成绩
dim_num = 6
radians = np.linspace(0, 2 * np.pi, dim_num, endpoint=False)
radians = np.concatenate((radians, [radians[0]]))
score_a = np.array([41,38,36,62,68,100]) #创建一维数组存储数据
score_a = np.concatenate((score_a, [score_a[0]]))
score_b = np.array([91,88,83,72,78,26]) #创建一维数组存储数据
score_b = np.concatenate((score_b, [score_b[0]]))
score_c = np.array([81,78,85,76,74,36]) #创建一维数组存储数据
score_c = np.concatenate((score_c, [score_c[0]]))
三、绘制雷达图
plt.polar(radians,score_a,radians,score_b,radians,score_c)
四、设置标签
radar_labels = ['线性代数','python','计算机','英语','虚拟机','可视化']
radar_labels = np.concatenate((radar_labels, [radar_labels[0]]))
五、极坐标的标签
angles = radians * 180/np.pi # 弧度转角度
plt.thetagrids(angles, labels=radar_labels) # 设置新的刻度标签
六、填充雷达图
plt.fill(radians,score_a,'violet',radians,score_b,'r',radians,score_b,'b',alpha=0.5)
最后 展示图表
plt.show()
以下是完整的代码
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
dim_num = 6
radians = np.linspace(0, 2 * np.pi, dim_num, endpoint=False)
radians = np.concatenate((radians, [radians[0]]))
score_a = np.array([55, 38, 46, 52, 61, 120]) # 创建一维数组存储数据
score_a = np.concatenate((score_a, [score_a[0]]))
score_b = np.array([71, 58, 103, 52, 68, 56]) # 创建一维数组存储数据
score_b = np.concatenate((score_b, [score_b[0]]))
score_c = np.array([81, 78, 85, 76, 74, 36]) # 创建一维数组存储数据
score_c = np.concatenate((score_c, [score_c[0]]))
plt.polar(radians,score_a,radians,score_b,radians,score_c)
radar_labels = ['计算机','python','线性代数','可视化','虚拟机','英语']
radar_labels = np.concatenate((radar_labels, [radar_labels[0]]))
angles = radians * 180/np.pi # 弧度转角度
plt.thetagrids(angles, labels=radar_labels) # 设置新的刻度标签
angles = radians * 180/np.pi # 弧度转角度
plt.thetagrids(angles, labels=radar_labels) # 设置新的刻度标签
plt.show()
运行图: