Python使用matplotlib可视化模拟学生课程分数雷达图

可视化模拟学生课程分数雷达图

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus']=False

#某学生的课程与成绩
courses = ['C++','Python','高数','大学英语','软件工程',
           '组成原理','数字图像处理','计算机图形学']
scores = [80,95,78,85,45,65,80,60]

dataLength = len(scores)        #数据长度

#angles数组把圆周等分为dataLength份
#   np.linspace方法:在[start, stop, num]范围内计算,返回num个(默认为50)均匀间隔的样本。
angles = np.linspace(0,                 #数组第一个数据
                     2*np.pi,           #数组最后一个数据
                     dataLength,        #数组中数据数量
                     endpoint=False)    #不包含终点
scores.append(scores[0])        #分数列表首尾就是一样的
print(angles,scores)

# np.append返回一个新数组,要使用变量接收
angles = np.append(angles,angles[0])#闭合(数组的第一个点和最后一个点是重合了)
print(angles)

#绘制雷达图  弧度
plt.polar(angles,           #确定顶点的角度
          scores,           #设置各角度上的数据
          'rv--',           #设置颜色、线型和端点
          linewidth=2)      #设置线宽

#设置角度网格标签  在每一个角度对应的位置显示课程的名称
plt.thetagrids(angles*180/np.pi,
               courses)

#填充雷达图内部
plt.fill(angles,
         scores,
         facecolor='r',
         alpha=0.3)
plt.show()

效果图如下:

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值