赞
踩
折线图+柱状图
VS Code,无需其余插件
csv文件数据样式:每一列代表一种数据,这里有三种数据。其中第一列用折线图表示,第二列用柱状图表示。
读取csv文件之后,处理里面的数据,再将数据传入HTML里面,让echarts使用这个数据来画图。
from flask import Flask,render_template,request,url_for import urllib.request import urllib.parse from bs4 import BeautifulSoup import re import requests #替代浏览器进行网络请求 import numpy as np import pandas as pd #创建应用程序:web应用程序 app=Flask(__name__) @app.route("/") def main(): #将文件名存储在filename中 filename='data.csv' # 要读取的csv文件 data=pd.read_csv(filename) # 处理csv文件的数据 xaxis=[i for i in range(0,20)] # 横坐标 all=data['all'].values.tolist() # 展示数量1 now=data['now'].values.tolist() # 展示数量2 dup=data['dup'].values.tolist() # 展示数量3 # 把数据传入HTML文件里面 return render_template("test.html",xaxis=xaxis,data_all=all,data_now=now,data_dup=dup) if __name__=='__main__': app.run(debug=True) #启动应用程序->启动一个flask项目
在head
部分引入echarts头文件。使用方法参考这篇文章
<head>
<meta charset="utf-8" />
<title>ECharts</title>
<!-- 引入刚刚下载的 ECharts 文件 -->
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.2/echarts.min.js"></script>
</head>
在body
里面更改数据。
在flask模块可以看到,我们已经传入了xaxis,data_all,data_now,data_dup 四个数据。第一个是横坐标要用的数据,剩下的是用于纵坐标的数据。
在option
里面更改数据的横纵坐标名称,数据引用格式为{{ 数据1 |safe}}
其他细节更改:
完整代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>ECharts</title> <!-- 引入刚刚下载的 ECharts 文件 --> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.2/echarts.min.js"></script> </head> <body> <!-- 为 ECharts 准备一个定义了宽高的 DOM --> <div id="main" style="width: 600px;height:400px;"></div> <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); // 指定图表的配置项和数据 var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); var option; // 配置 var option = { tooltip: { trigger: 'axis', axisPointer: { type: 'cross', crossStyle: { color: '#999' } } }, toolbox: { feature: { dataView: { show: true, readOnly: false }, magicType: { show: true, type: ['line', 'bar'] }, restore: { show: true }, saveAsImage: { show: true } } }, legend: { data: ['now', 'all', 'dup'] }, xAxis: [ { type: 'category', data: {{xaxis|safe}}, axisPointer: { type: 'shadow' } } ], yAxis: [ { type: 'value', name: 'all', min: 0, max: 100, interval: 10, axisLabel: { formatter: '{value} 个' } }, { type: 'value', name: 'dup', min: 0, max: 0.15, interval: 0.05, axisLabel: { formatter: '{value} %' } } ], series: [ { name: 'now', type: 'bar', data: {{data_now|safe}} }, { name: 'all', type: 'bar', data: {{data_all|safe}} }, { name: 'dup', type: 'line', yAxisIndex: 1, data: {{data_dup|safe}} } ] }; option && myChart.setOption(option); // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script> </body> </html>
完结
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。