Python可视化之Pyecharts神器(三)

一、数据读取

import pandas as pd
import pymysql
config = {
          'host':'localhost',
          'port':3306,
          'user':'root',
          'password':'123456'
          }
db = pymysql.connect(**config)
sql=('''SELECT * from  PER_INFO.T_SCORE''')
data=pd.read_sql(sql,db)
db.close()
data

还是用之前的老数据

二、柱状图加线图

from pyecharts import options as optsfrom pyecharts.charts import Bar, Grid, Line, Liquid, Page, Pie ,Tabdata_avg=data.groupby(['CLASS_ID','SUBJECT'])['SCORE'].agg(['count','mean']).round(2).unstack()data_avgbar =Bar()bar.add_xaxis(list(data_avg['count'].columns))for i in data_avg.index:    bar.add_yaxis(i,list(data_avg.loc[i]['count']))line =Line()line.add_xaxis(list(data_avg['mean'].columns))line.extend_axis(yaxis=opts.AxisOpts(name='平均分',position='right'))for i in data_avg.index:    line.add_yaxis(i,list(data_avg.loc[i]['mean']),yaxis_index=1,z=10)line.overlap(bar)line.render('index.html')line.render_notebook()

分班级统计了各个科目的平均分,这个二班英语有点差呀~

三、饼图加选项卡

data_cut=data.groupby(['SUBJECT',pd.cut(data.SCORE,5)])['SCORE'].count().unstack()
data_cut
tab=Tab()
for i in data_cut.index:
    data_t=data_cut.loc[i].fillna(0).to_dict()
    data_t=[[str(k),v] for k,v in data_t.items()]
    pie=Pie()
    pie.add('',data_t)
    pie.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}: {c}'))
    tab.add(pie,i)
tab.render('tab.html')
tab.render_notebook()

按科目查看同学们的分数区间分布

四、创建局域网网址

新建一个 Flask 项目

$ mkdir pyecharts-flask-demo$ cd pyecharts-flask-demo$ mkdir templates

将上面两步生成的静态html文件存入templates中,在根目录下新建app.py文件,内部代码如下:

from flask import Flask,render_template

app = Flask(__name__)

@app.route('/report/')
def index():
    return render_template('index.html')

@app.route('/report/<name>')
def login(name):
    return render_template(name)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

运行app.py

访问网址 http://ip:5000/report/tab.html 即可进行网页报表浏览

五、设置消息自动推送

我们可以利用之前的机器人自动推送设置,进行上述报表的自动化推送及刷新,领导和同事们可以实现点击即可见

import requests
def post_robot(data):
    r = requests.post(url='机器人地址',
                      json=data)
content = {
'msgtype': 'news',
'news': {
    'articles': [
        { 'title': '各科目分数段分布',
        'url': 'http://ip:5000/report/tab.html'},
        {'title': '各班级平均分数对比',
        'url': 'http://ip:5000/report/page.html'},
                ]
        }
            }
post_robot(content)
效果:

将上述代码整合后进行定时刷新、定点推送就实现了最简单的报表网页化,下班时间又可以提前了!

(0)

相关推荐

  • Python 图表利器 pyecharts

    来源:Python 技术「ID: pythonall」 随着互联网的高速发展,数据量也在疯狂增长,近几年数据分析,数据挖掘的岗位越来越吃香.说到数据分析,就离不开数据的可视化,毕竟图表比冷冰冰的数字直 ...

  • bar库 pyecharts

    Pyecharts V1全新版本使用教程--Bar(柱状图的使用) 以下内容均来自Pyecharts官方使用文档(可自行阅读)和自己的理解: 官方链接:https://pyecharts.org/#/ ...

  • (1条消息) Pyecharts组合图表复用渲染模块实现方法

    Pyecharts 组合图表 复用更新数据实现方法记录[一定要看说明文档] 2020-11-04 DraggablePageLayout 布局 page = Page(layout=Page.Drag ...

  • 自学 Python 到什么程度能找到工作,1300+ 条招聘信息告诉你答案

    来源:Python 技术「ID: pythonall」 随着移动互联网的发展以及机器学习等热门领域带给人们的冲击,让越来越多的人知道并开始学习 Python.无论你是是科班出身还是非科班转行,Pyth ...

  • 如何使用pyecharts中自带的数据集?

    如何使用 pyecharts 中自带的数据集? 我们在学习pyehcarts绘图的过程中,需要一些练习的数据. pyecharts为我们提供了这样的数据集 -- Faker,存储于 faker.py ...

  • Flask结合ECharts实现在线可视化效果,超级详细!

    Python视界 来源|本文经授权转载自Python研究者 作者|李运辰 今天教大家如何利用Flask框架结合ECharts,将采集的数据实现在线可视化效果(可以将可视化效果放到网页上,分享给其他小伙 ...

  • Flask

    Flask 本指南介绍了如何在 Flask 中使用 pyecharts. Flask 模板渲染 Step 0: 新建一个 Flask 项目 $ mkdir pyecharts-flask-demo$ ...

  • pyecharts基础之柱状图的绘制

    安装 pip install pyecharts 查看版本 pyecharts分为v0.5.X和v1两个大版本,0.5.x 版本将不再进行维护推荐使用v1版本 import pyechartsprin ...

  • 盘点 Django 展示可视化图表的多种方式(建议收藏)

    盘点 Django 展示可视化图表的多种方式(建议收藏)

  • Python Flask 数据可视化

    数据可视化是数据处理中的重要部分,前面我们了解了 Flask 的开发和部署,如何用 Flask 做数据可视化呢?今天我们来了解一下. Python 语言极富表达力,并且拥有众多的数据分析库和框架,是数 ...