赞
踩
Echarts 缩写来自 Enterprise Charts(商业级数据图表),是百度的一个开源的数据可视化工具
Echarts 能够绘制 2D 和 3D 的饼状图、柱状图、折线图等几乎所有我们能够见到的图形
Echarts 能够在 PC 端和移动设备上流畅运行,兼容当前绝大部分浏览器
Echarts 是一个纯 JavaScript 的图表库,底层依赖轻量级的 Canvas 库 ZRender
清华源:https://pypi.tuna.tsinghua.edu.cn/simple/
在这文件里主要需要做的任务就是连接数据库,然后再处理数据,将梳理好的数据发送给app
import pandas as pd
import pymysql
def connFun():
conn = pymysql.connect(host="localhost"
, user="root"
, password="123456"
, port=3306
, db="dataView")
sql = "select * from night"
data = pd.read_sql(sql, conn)
return data
def analysisFun():
value = connFun()
value['Night'] = value['Night'].astype("float")
df = value.groupby("City", as_index=False)['Night'].mean()
city = df.City.tolist()
night = df.Night.tolist()
return city, night
这里就是将数据传输到前端页面
from flask import Flask, render_template
import utils
app = Flask(__name__)
picl = utils.analysisFun()
@app.route("/")
def index():
# 渲染模板的同时将数据传输进去
return render_template("index.html", picl=picl)
if __name__ == '__main__':
app.run(debug=True)
页面的展示
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="../static/echarts.min.js"></script> </head> <body> <div id="main" style="width:600px;height:400px"></div> <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); var data = [{% for item in picl.1 %}{{ item }},{% endfor %}]; // 指定图表的配置项和数据 var option = { //标题 title: { text: 'ECharts 入门示例' }, //指示器 tooltip: {}, //图列,动态效果 legend: { data: ['销量'] }, xAxis: { {#插入数据#} data: {{ picl[0] | safe }}, axisLabel:{ interval:0 } }, yAxis: {}, series: [ { name: '销量', type: 'bar', data: data } ] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script> </body> </html>
结果展示
如果出现下列报错,则需要查看文件路径的电脑名是否包含中
将处理好的数据传输到前端时有两种方法
xAxis: {
{#插入数据#}
data: {{ picl[0] | safe }},
axisLabel:{
interval:0
}
}
其中safe
是让输入的数据不转意,要是不加的话,可能会出现下面的情况而导致图像显示不出
var myChart = echarts.init(document.getElementById('main'));
:这是将后面option的内容插入到所选定的内容内
title: {
text: 'ECharts 入门示例'
},
上面定义的是标题,在图像中的位置如下
tooltip: {},
这个是指示器,就是当鼠标放到图上是会反馈一些信息
这是由指示器的图
这是没有指示器的图
legend: {
data: ['销量']
},
这是图例,但是当你点击图例时也会出现动态效果
xAxis: {
{#插入数据#}
data: {{ picl[0] | safe}},
axisLabel:{
interval:0
}
},
yAxis: {},
上面时插入x,y轴的内容,若没有写那么就是默认,其中axisLabel
部分是无论怎样都养完全输出内容
series: [
{
name: '销量',
type: 'bar',
data:data
}
]
}
上面就是所要输出的值,type
就是显示图的类型
myChart.setOption(option);
将option插入myChart
所选择的模块
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。