这里写目录标题
Echarts是什么
ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。
echarts.min.js的下载:
从官网上点击下载后进入选择GitHub
https://github.com/apache/incubator-echarts/tree/4.8.0/dist
然后点击echarts.min.js进入,选择Raw,然后Ctrl+S即可另存为
由于是国外的镜像站点,会比较慢,可私信我发给你
写一个Flask进行前端展示 echart.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/echarts')
def echarts():
return render_template('echarts.html')
if __name__ == "__main__":
app.run(debug=True)
引入Echarts
<head>
<meta charset="UTF-8">
<script src="/static/js/echarts.min.js"></script>
<!-- cdn -->
<!-- <script src="https://cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js"></script> -->
</head>
准备一个足够高宽的div容器
<div id="line" style="width: 600px; height: 400px;"></div>
<div id="bar" style="width: 600px; height: 400px;"></div>
<div id="pie" style="width: 600px; height: 400px;"></div>
折线图
折线图是排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。 在折线图中,类别数据沿水平轴均匀分布,所有值数据沿垂直轴均匀分布。
<body>
<div id="line" style="width: 600px; height: 400px;"></div>
<script>
var line_chart = echarts.init(document.getElementById("line"));
var line_option = {
title:{
text:"Line 入门"
},
tooltip:{
trigger:"item" // 触发 axis
},
xAxis:{
type:'category', // 类别
data:['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis:{
type:'value' // 数值
},
series:[
{
data:[100, 200, 300, 400, 500, 600, 700],
type:'line'
}
]
}
line_chart.setOption(line_option);
</body>
如图所示:
柱状图
柱形图,又称长条图、柱状统计图(英文:bar chart)亦称条图、条状图、棒形图,是一种以长方形的长度为变量的统计图表。长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。长条图亦可横向排列,或用多维方式表达。
// 初始化Echarts
var bar_chart = echarts.init(document.getElementById("bar"));
var bar_option = {
title:{
text:"Bar 入门"
},
xAxis:{
type:'category',
data:['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
legend:{
data:["数据"]
},
yAxis:{
type:'value'
},
series:[
{
name:'数据',
data:[120, 323, 230, 110, 50, 90, 130],
type:'bar',
showBackground:true,
backgroundStyle:{
color:'rgba(220, 220, 220, 0.8)'
}
}
]
};
bar_chart.setOption(bar_option);
如图所示:
饼图
饼图,常用于统计学模块。2D饼图为圆形,手画时,常用圆规作图。
仅排列在工作表的一列或一行中的数据可以绘制到饼图中。饼图显示一个数据系列 (数据系列:在图表中绘制的相关数据点,这些数据源自数据表的行或列。图表中的每个数据系列具有唯一的颜色或图案并且在图表的图例中表示。可以在图表中绘制一个或多个数据系列。饼图只有一个数据系列。)中各项的大小与各项总和的比例。饼图中的数据点 (数据点:在图表中绘制的单个值,这些值由条形、柱形、折线、饼图或圆环图的扇面、圆点和其他被称为数据标记的图形表示。相同颜色的数据标记组成一个数据系列。)显示为整个饼图的百分比。
// pie初始化
var pie_chart = echarts.init(document.getElementById("pie"));
var pie_option = {
tooltip:{
trigger:'item',
formatter:'{a} <br/> {b}: {c} ({d}%)'
},
legend:{
orient: 'vertical',
left: 10,
data:['新浪微博', '腾讯视频', '爱奇艺', '优酷', '芒果TV']
},
series:[
{
name:'访问来源',
type:'pie',
radius:['40%', '70%'],
label:{ // 圆中间的对应标签
show:false, // 是否直接显示
position:'center'
},
emphasis:{
label:{
show:true,
fontSize:'30',
fontWeight:'bold'
}
},
labelLine:{
show: false
},
data:[
{value: 335, name:'新浪微博'},
{value: 310, name:'腾讯视频'},
{value: 234, name:'爱奇艺'},
{value: 124, name:'优酷'},
{value: 900, name:'芒果TV'},
]
}
]
}
pie_chart.setOption(pie_option);
如图所示:
代码整合:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="/static/js/echarts.min.js"></script>
<!-- cdn -->
<!-- <script src="https://cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js"></script> -->
</head>
<body>
<div id="line" style="width: 600px; height: 400px;"></div>
<div id="bar" style="width: 600px; height: 400px;"></div>
<div id="pie" style="width: 600px; height: 400px;"></div>
<script>
var line_chart = echarts.init(document.getElementById("line"));
var line_option = {
title:{
text:"Line 入门"
},
tooltip:{
trigger:"item" // 触发 axis
},
xAxis:{
type:'category', // 类别
data:['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis:{
type:'value' // 数值
},
series:[
{
data:[100, 200, 300, 400, 500, 600, 700],
type:'line'
}
]
}
line_chart.setOption(line_option);
// 初始化Echarts
var bar_chart = echarts.init(document.getElementById("bar"));
var bar_option = {
title:{
text:"Bar 入门"
},
xAxis:{
type:'category',
data:['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
legend:{
data:["数据"]
},
yAxis:{
type:'value'
},
series:[
{
name:'数据',
data:[120, 323, 230, 110, 50, 90, 130],
type:'bar',
showBackground:true,
backgroundStyle:{
color:'rgba(220, 220, 220, 0.8)'
}
}
]
};
bar_chart.setOption(bar_option);
// pie初始化
var pie_chart = echarts.init(document.getElementById("pie"));
var pie_option = {
tooltip:{
trigger:'item',
formatter:'{a} <br/> {b}: {c} ({d}%)'
},
legend:{
orient: 'vertical',
left: 10,
data:['新浪微博', '腾讯视频', '爱奇艺', '优酷', '芒果TV']
},
series:[
{
name:'访问来源',
type:'pie',
radius:['40%', '70%'],
label:{ // 圆中间的对应标签
show:false, // 是否直接显示
position:'center'
},
emphasis:{
label:{
show:true,
fontSize:'30',
fontWeight:'bold'
}
},
labelLine:{
show: false
},
data:[
{value: 335, name:'新浪微博'},
{value: 310, name:'腾讯视频'},
{value: 234, name:'爱奇艺'},
{value: 124, name:'优酷'},
{value: 900, name:'芒果TV'},
]
}
]
}
pie_chart.setOption(pie_option);
</script>
</body>
</html>
PS:以上数据纯属虚构!!