使用到的技术: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')

最新文章

  1. 理解SVG的viewport,viewBox,preserveAspectRatio
  2. removeClass 按钮点击添加class效果
  3. python day1:初识Python(一)
  4. Node.js ejs中文手册
  5. ThreadLocal的基本原理与实现
  6. .NET MVC框架中控制器接收参数的四种方式
  7. 关于mediacontroller的一些好的文章
  8. work_8
  9. 文件打开方式O_DSYNC、O_RSYNC、O_SYNC
  10. 区分词法作用域(js)与动态作用域(精!)
  11. Python 几个常见函数
  12. docker中的镜像中运行Django项目
  13. Lua无法排序的问题(Key需要是连续的)
  14. sql语句(一)— —判断是否有这条数据的优化
  15. 关于virtualenv python环境引用 pycharm相关配置的使用讨论
  16. Linux系统PWM驱动【转】
  17. itcast-ssh-crm实践
  18. [转载]WIN7已经记住访问另一台电脑的账号和密码 凭证
  19. WIN7隐藏GUEST登录账户
  20. Eclipse launch configuration----Eclipse运行外部工具

热门文章

  1. Oracle 查看index是否失效
  2. Codevs 1305 Freda的道路(矩阵乘法 DP优化)
  3. 干货 | 10分钟带你彻底了解column generation(列生成)算法的原理附java代码
  4. WAMP 3.1.0 APACHE 2.4.27 从外网访问
  5. 图解CRM(客户关系管理)全流程
  6. Evaluation of Sampling and Cross-Validation Tuning Strategies for Regional-Scale Machine Learning Classification
  7. vim 注释颜色
  8. OpenFOAM——气泡上升
  9. process.env.NODE_ENV理解
  10. 大数据应用期末总评Hadoop综合大作业