在大概了解了Python读写各种文件的方法和数据可视化库matplotlib中一些API的使用后,花了一点时间写了这个带有实践意义的简单程序——成绩雷达图。
在刚开始时我曾尝试直接用输入各学科名称和成绩来存列表,发现运行过程中每次都要敲回车实在是很麻烦,也不利于大规模成绩查询和雷达图绘制,于是我想起来前面学了一些Python处理Excel文件的方法并用于实践。
代码如下:

#成绩雷达图绘制import matplotlib.pyplot as plt
import numpy as np
import openpyxl as ox#中文显示
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False#初始创建学科名称name_courses和对应分数scores两个空列表用于后续储存
name_courses=[]
scores=[]
sheetname=input('请输入学生编号及姓名:')print('读入各学科及对应成绩中')#读入Excel文件中的学科名称及对应成绩
wb = ox.load_workbook('CoursesAndScores.xlsx')
sheet = wb.get_sheet_by_name(sheetname)
n_courses=sheet.max_row-1
print('共计'+str(n_courses)+'门课程\n')
for i in range(2,sheet.max_row+1):name_courses.append(sheet['A'+str(i)].value)scores.append(sheet['B'+str(i)].value)
print('成绩读入完成,绘制雷达图中')#根据学科数目确定角度偏转次数,为曲线重合在列表尾部再加入第一个元素
theta=np.linspace(0,2*np.pi,n_courses,endpoint=False)
theta=np.append(theta,theta[0])
scores.append(scores[0])#将学科名称和分数合成,一起标注在对应的角度
nameNscores=[]
for i in range(n_courses):nameNscores.append(name_courses[i]+' '+str(scores[i]))#绘制雷达图
plt.polar(theta,scores,'c--',lw=1)
plt.thetagrids(theta*180/np.pi,nameNscores,fontproperties='simhei')
plt.fill(theta,scores,facecolor='c',alpha=0.2)
plt.title(sheetname+'的成绩雷达图',verticalalignment='baseline',fontsize=12)plt.show()print('绘制完成')

看着其实是非常简单的逻辑加接口实现了一个以前感觉很厉害的东西,有点学习到东西的意味了。
这里强调两点:

#将学科名称和分数合成,一起标注在对应的角度
nameNscores=[]
for i in range(n_courses):nameNscores.append(name_courses[i]+' '+str(scores[i]))

为了同时把学科名称和成绩显示清楚,我尝试过在thetagrids下功夫查了很久试了不少都只能标注一个列表,所以想到把这俩加起来,如果有其他解决办法,希望不吝赐教。
还有是下面这段代码一定要搞清楚

#中文显示
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

这段代码能改变编码把中文以黑体输出在图上,如果没有会出现乱码。

下面是程序结果:



以上就是画出001号天下第一帅气的成绩雷达图!
对于便捷的整体输入在执行框里进行互动,我还没有好的方法;并且这个程序在我用Pyinstaller 打包成可执行exe文件时无法执行,我猜和他需要读取Excel文件有关,仍不清楚。
希望对上面及文章中间一共提出三个我的问题有想法的朋友,在评论区不吝赐教!

数据可视化简单尝试——成绩雷达图相关推荐

  1. echart雷达图文字挤在一起_【数据可视化·图表篇】雷达图

    数据可视化基础图表系列的最后一篇终于跟大家见面了!今天小数将带大家走进雷达图. (之前关于柱状图.折线图.饼图和散点图的分享文章,感兴趣的小伙伴可以查看历史文章哦) 为方便大家理解,本文生成图表所使用 ...

  2. 数据可视化之NBA球员雷达图

    目录 前言 一.雷达图介绍 二.时间轴介绍 三.代码实现过程 安装pyecharts 1.导入所需的pandas库pyecharts库还有相关的包 2.导入NBA球员数据 3.数据处理 4.每个方向的 ...

  3. 多维度雷达图怎么做_数据可视化:柱状图、雷达图等六种基本图表的特点和适用场合...

    序言 进入正题之前,先纠正一种误解. 有人觉得,基本图表太简单.太原始,不高端,不大气,因此追求更复杂的图表.但是,越简单的图表,越容易理解,而快速易懂地理解数据,不正是"数据可视化&quo ...

  4. python数据可视化—用pyecharts画雷达图

    什么是pyecharts pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyech ...

  5. 用户数据销售额分析动态大屏看板+大屏数据可视化图表组件(折线图+圆柱图+散点图+饼图+漏斗图+雷达图+水位图)+智能web端高保真大数据动态可视化大屏看板+中国动态地图+智慧电商实时动态数据大屏看板

    作品内容:用户数据销售额分析动态大屏看板+大屏数据可视化图表组件(折线图+圆柱图+散点图+饼图+漏斗图+雷达图+水位图)+web端高保真大数据动态可视化大屏看板+中国动态地图+电商实时动态数据大屏看板 ...

  6. AMap + echarts、google map + d3.js分别实现数据可视化中的飞线图(迁徙图)

    首先肯定是给出demo啦: 演示demo 直接到左侧选择框中选择View taxi flow里面随便选个日期 总体介绍 最近由于工作室项目需要做一个数据可视化平台,这个平台最终是交由国外人使用的.而国 ...

  7. Qt图表绘制(QtCharts)-绘制简单的极坐标图[雷达图](11)

    Qt图表绘制(QtCharts)-绘制简单的极坐标图[雷达图](11)

  8. pyechart数据可视化丨制作桑基图(sankey)的最简单方法

    前言 最近在分析超期库存数据, 每天4万条左右, 数据的特点是有很多分类变量, 为了展现这些变量的关系, 想到了桑吉图. Pyechart官网上有关于桑基图的案例, 但是如何用日常使用的excel数据 ...

  9. python 桑基图 地理坐标_【转载】Python数据可视化-实现Sankey桑基图

    根据不完整统计,90%想用sankey图的朋友都是因为被它炫酷的外表所吸引,举个例子: 在这里插入图片描述 关于sankey图的定义是这样描述的: 即桑基能量分流图,也叫桑基能量平衡图.它是一种特定类 ...

最新文章

  1. 跟无闻学习GO Web 编程(一) -- go 开发环境搭配(win7 64bit)
  2. hdu1572 水搜索
  3. java(13)内部类
  4. C# 遇到 which has a higher version than referenced assembly
  5. linux ubuntu 开启ssh服务,开启SSH服务远程登录ubuntu
  6. LeetCode 1779. 找到最近的有相同 X 或 Y 坐标的点
  7. python字符串转64位数字_python-将String转换为64位整数映射字符以自定义两位值映射...
  8. Python学习笔记——如何获得数值类型的最大值和最小值(表示范围)
  9. 科大讯飞回应“同传造假”:承认转写人类同传,沟通不足造成误解
  10. 零基础学python图文版-给伸手党的福利:Python 新手入门引导
  11. SpringBoot作mongodb批量更新
  12. 坚决反对“企业文学化”
  13. java blazeds_Flex+Java+Blazeds
  14. html5妇女节游戏,适合妇女节玩的小游戏
  15. python中使用pip提示: Fatal error in launcher: Unable to create process using
  16. python,list元素倒置
  17. 谓词逻辑在计算机中的,谓词逻辑与归纳原理1.ppt
  18. 上海大学电影学院计算机17,上海大学17级表演系女神集体曝光,有网红也有小明星...
  19. picgo免费搭建个人图床
  20. GitOps 与 ChatOps 的落地实践

热门文章

  1. R语言read.table后header的数字前加上X,-符号被自动替换为.符号的处理办法
  2. 局部对比度结合区域显著性红外弱小目标检测
  3. 在PowerBI中查看Excel报表
  4. API接口遍历越权获取个人信息
  5. 压力测试模拟程序(C实现)
  6. 个人微信公众号搭建Python实现 -个人公众号搭建-总结(14.3.6)
  7. JS逆向-PDD商家后台-手机号
  8. video使用canvas截图黑屏
  9. 博通团队文本标签提取技术演进
  10. Nginx 4层和7层