使用到的技术:pyecharts flask

首先 pip install flask 和下载pip install pyecharts==0.5.5

项目结构:

代码:

from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('test.html')
@app.route('/avg',methods=['GET','POST'])
def avg_score():
return render_template("不同年份总体平均成绩情况.html")
@app.route('/sex')
def sex_score():
return render_template("不同性别学生成绩情况柱形图-折线图.html")
@app.route('/many')
def many_score():
return render_template("一个页面渲染多张图表.html")
@app.route('/bing')
def bing_score():
return render_template("饼图.html") if __name__ == '__main__':
app.run(debug=True)
# 导入xlrd模块
import xlrd
from pyecharts import *
page = Page() # 实例化page类,一个页面顺序熏染读个图表
#设置文件名和路径
fname = '课程成绩.xlsx'
# 打开文件
filename = xlrd.open_workbook(fname)
sheets=filename.nsheets#获得sheet的个数
sheet_list = filename.sheet_names()#sheet名字
list_x=[]
years=["2016","2017","2018"]#年份
for i in range(len(sheet_list)):
listx=[]#存放班级
dirx={}#存放班级人数
listy=[]#存放分数
diry={}#统计存放班级的分数
sheet=filename.sheets()[i]#获得当前的sheet
nrows=sheet.nrows#获得当前的sheet的行数
diravg={}#存放平均分
for j in range(1,nrows):
row_datas = sheet.row_values(j)#获得当前行的所有信息
listx.append(row_datas[0])
listy.append(row_datas[4])
for k in range(len(listx)):
if listx[k] not in dirx:
dirx[listx[k]]=1
if "".join(listy[k].split())!='缺考':
diry[listx[k]]=int(listy[k])
else:
diry[listx[k]]=0
else:
dirx[listx[k]]=dirx[listx[k]]+1
if "".join(listy[k].split())!='缺考':
diry[listx[k]]=int(listy[k])+diry[listx[k]]
for d in dirx:
if d not in diravg:
diravg[d]="%.1f"%(diry.get(d)/dirx.get(d))
keys=list(diravg.keys())
values=list(diravg.values())
bar=Bar(years[i]+"成绩分析")
bar.add(years[i],keys,values)
page.add(bar)
page.render("../templates/一个页面渲染多张图表.html")
截图:

# 导入xlrd模块
import xlrd
from pyecharts import Bar
#设置文件名和路径
fname = '课程成绩.xlsx'
# 打开文件
filename = xlrd.open_workbook(fname)
sheets=filename.nsheets#获得sheet的个数
sheet_list = filename.sheet_names()#sheet名字
avg=[]
for i in range(len(sheet_list)):#获取sheet个数
sheet=filename.sheets()[i]#获取当前的sheet
nrows=sheet.nrows#获取行数
sumscore=0#总分
count=0#学生的个数
for j in range(1,nrows):
row_datas = sheet.row_values(j)#获得当前行的所有信息
if "".join(row_datas[4].split())!='缺考':
count=count+1
sumscore+=int(row_datas[4])
avg.append("%.1f"%(sumscore/count))#存放保留一位小数的成绩
#print(avg)
years=['2016','2017','2018']#设计x坐标
bar=Bar("标题:不同年份总体平均成绩情况")#设置标题
#画图
bar.add("图注:平均成绩",years,avg, is_label_show=True)
bar.render("../templates/不同年份总体平均成绩情况.html")

import xlrd
from pyecharts import *
#设置文件名和路径
fname = '课程成绩.xlsx'
# 打开文件
filename = xlrd.open_workbook(fname)
page = Page() # 实例化page类,一个页面顺序熏染读个图表
sheets=filename.nsheets#获得sheet的个数
sheet_list = filename.sheet_names()#sheet名字
dirk={"不及格":0,"及格":0,'良好':0,'优秀':0}
years=["2016","2017","2018"]#年份
for i in range(len(sheet_list)):
sheet=filename.sheets()[i]#获取当前的sheet
nrows=sheet.nrows#获取行数
sumscore=0#总分
for j in range(1,nrows):
row_datas = sheet.row_values(j)#获得当前行的所有信息
if "".join(row_datas[4].split())!='缺考':
if int(row_datas[4])<60:
dirk["不及格"]=dirk.get("不及格")+1
elif 60<=int(row_datas[4])<70 :
dirk["及格"]=dirk.get("及格")+1
elif 70<=int(row_datas[4])<90 :
dirk["良好"]=dirk.get("良好")+1
else:
dirk["优秀"]=dirk.get("优秀")+1
pie = Pie(years[i]+"成绩等级分析")
listname=list(dirk.keys())
# print(listname)
attr = []
for i in listname:
attr.append(i)
values=[dirk.get("不及格"),dirk.get("及格"),dirk.get("良好"),dirk.get("优秀")]
pie.add("", attr, values, is_label_show=True)
page.add(pie) page.render("../templates/饼图.html") #
# attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
# v1 = [11, 12, 13, 10, 10, 10]
# pie = Pie("饼图示例")
# pie.add("", attr, v1, is_label_show=True)
# pie.render('pie.html')

使用flask做网页的excel成绩分析的更多相关文章

  1. 通过excel表格分析学生成绩

    题目要求: 分析文件’课程成绩.xlsx’,至少要完成内容:分析1)每年不同班级平均成绩情况.2)不同年份总体平均成绩情况.3)不同性别学生成绩情况,并分别用合适的图表展示出三个内容的分析结果. 废话 ...

  2. 网页细分图结果分析(Web Page Diagnostics)

    Discuz开源论坛网页细分图结果分析(Web Page Diagnostics) 续LR实战之Discuz开源论坛项目,之前一直是创建虚拟用户脚本(Virtual User Generator)和场 ...

  3. LR实战之Discuz开源论坛——网页细分图结果分析(Web Page Diagnostics)

    续LR实战之Discuz开源论坛项目,之前一直是创建虚拟用户脚本(Virtual User Generator)和场景(Controller),现在,终于到了LoadRunner性能测试结果分析(An ...

  4. 用XAML做网页!!—终结篇

    原文:用XAML做网页!!-终结篇 迄今为止的设计都很顺利,但这次就不得不接触我前面所说的非常糟糕的流文档了,但在此之前先来把标题弄好: <Border BorderBrush="#6 ...

  5. 基于flask的网页聊天室(四)

    基于flask的网页聊天室(四) 前言 接前天的内容,今天完成了消息的处理 具体内容 上次使用了flask_login做用户登录,但是直接访问login_requare装饰的函数会报401错误,这里可 ...

  6. 基于flask的网页聊天室(三)

    基于flask的网页聊天室(三) 前言 继续上一次的内容,今天完成了csrf防御的添加,用户头像的存储以及用户的登录状态 具体内容 首先是添加csrf的防御,为整个app添加防御: from flas ...

  7. flask使用tablib导出excel数据表

    在网页中常常有导出数据的需求,尤其是一下管理类平台.在flask中要导出excel数据表,通常可以使用xlwt库,创建文件并逐行写入数据,但是使用起来总是感觉很麻烦.tablib库相对操作更加方便. ...

  8. 【学】CSS3基础实例1 - 用CSS3做网页中的小三角,以及transition的用法

    自开了博客园已经有2周了吧,虽然转载了一些觉得比较有用的文章之外还没有开始写自己的一些学习记录,那就从今天开始. 目前看了妙味的不少视频,有css+html,js的基础和中级也都看完了,作业也都做了, ...

  9. 用做网页开发经历了三个阶段(附长篇讨论) good

    用做网页开发经历了三个阶段:第一阶:傻干阶段使用Intraweb,傻瓜型,无需知道javascript,html,css,会pascal就可以了. 第二阶:困惑阶段使用Intraweb,有很多限制,比 ...

随机推荐

  1. Django 实现文件下载

    1. 思路: 文件,让用户下载 - a标签+静态文件 - 设置响应头(django如何实现文件下载) 2. a标签实现 <a href="/static/xxx.xlsx"& ...

  2. 2019.11.30 Mysql查询知识

    不等于:<> 判断为空的条件:null和空格(空字符串) 判断是否为null:xxxx  is  not  null    /    xxxx   is   null 判断null: SE ...

  3. GoCN每日新闻(2019-10-16)

    GoCN每日新闻(2019-10-16) GoCN每日新闻(2019-10-16) 1. 持续的性能分析与优化 https://medium.com/@tvii/continuous-profilin ...

  4. vue 移动端禁用安卓手机返回键

    //禁止手机返回键    下面这段代码直接复制在index.html中,可以生效// $(document).ready(function() { if (window.history &&a ...

  5. ICEM——对msh文件或者cas文件重新划分边界

    原视频下载地址:https://pan.baidu.com/s/1jIoKSuy 密码: m3uv

  6. 20189220 余超《Linux内核原理与分析》第五周作业

    扒开系统调用的三层皮?(上) 第4章的基础知识 Linux系统调用的三层机制:xyz()(API函数).system_call(系统调用处理入口) . sys_xyz()(系统调用内核处理函数). 3 ...

  7. [代码质量] 代码质量管控 -- 复杂度检测 (JavaScript)

    转载自: https://juejin.im/post/59bb8b546fb9a00a4247532e 背景 代码的复杂度是评估一个项目的重要标准之一.较低的复杂度既能减少项目的维护成本,又能避免一 ...

  8. 第2课第4节_Java面向对象编程_多态性_P【学习笔记】

    摘要:韦东山android视频学习笔记  面向对象程序的三大特性之继承性: 1.向上转换:只能定义被子类覆写的方法,不能调用在子类中定义的方法. class Father { private int ...

  9. SQLServer replace函数

    declare @name char(1000) --注意:char(10)为10位,要是位数小了会让数据出错 set @name='ssssfcfgghdghdfcccs' select repla ...

  10. mac php7.3 安装扩展

    进入到PHP的目录 /bin/pecl install mongodb 其他扩展同理. 另外: Mac brew 安装的php的启动和停止: brew services stop phpbrew se ...