文章目录
- 前言
- Apache Echarts
- 绘制基础折线图
- 绘制带标记的折线图
- 绘制多条折线图
- 绘制带标签的折线图
- 完整源码地址
前言
本文包含的代码仅为部分片段,完整源码有详细注释,可在文末领取!
在当今数字化时代,数据可视化已成为一种必不可少的工具。它可以帮助我们更好地理解数据,从而做出更明智的决策。以下是数据可视化的一些重要性:
- 帮助我们更好地理解数据
通过将数据可视化,我们可以更轻松地理解数据。图表和图形可以帮助我们发现数据中的模式、趋势和异常值,从而更好地理解数据。
- 帮助我们做出更好的决策
通过可视化数据,我们可以更好地了解数据中的信息,从而做出更好的决策。例如,如果我们正在分析销售数据,我们可以使用可视化工具来查看哪些产品最畅销,哪些产品需要进一步推销。
- 帮助我们与他人分享数据
通过将数据可视化,我们可以更好地与他人分享数据。图表和图形可以帮助我们向他人传达数据中的信息,使他们更容易理解数据。
Apache Echarts
官网地址:https://echarts.apache.org/zh/index.html
Apache Echarts 的优点:
- 官网提供超过200款图表案例
- 基于 JavaScript 的开源可视化图表库
- 提供详细的API文档方便查找图表配置
本文就讲解如何用 Apache Echarts 绘制常见的折线图。
折线图: 折线图用于显示数值变量随时间变化的趋势。每个数据点表示一个时间点的值。
绘制基础折线图
折线图如下:

图表包含内容有:
- 标题、图例、坐标轴
- 当鼠标移动到折线图上会有提示框出现
- 还可以将曲线设置为平滑
源码展示:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flask+echarts项目</title>
	<!-- 导入下载的 echarts.min.js -->
    <script src="../../static/js/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 myChart=echarts.init(document.getElementById('main'),null,{width:500,height:400});
// 跟随浏览器的宽度自适应图表大小
// var myChart=echarts.init(document.getElementById('main'));
// window.addEventListener('resize',function(){myChart.resize();});
// 指定图表的配置项和数据
var option={
	// 图表标题配置
	title:{
		text:'基础折线图'
	},
	// 提示框组件
	tooltip:{
		// 是否显示提示框
		show:true,
		// 触发类型,axis 移动到坐标轴就触发
		trigger:'axis'
	},
	// 图例配置项
	legend:{
		// 图例的数据数组,
		data:["销量"],
	},
	// X 轴配置项
	xAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'category',
		// 坐标轴名称,可以对每一个名称进行单独配置,比如:Mon 显示为红色
		data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
	},
	// y 轴配置项
	yAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'value',
	},
	// 系列配置,根据不同图表有不同的配置
	series:[
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'销量',
			// 图表类型
			type:'line',
			// 数据内容
			data:[150, 230, 224, 218, 135, 147, 260],
			// 是否平滑曲线显示
			smooth: true
		}
	]
};
//使用刚指定的配置项和数据显示图像
myChart.setOption(option);
</script>
</body>
</html>
绘制带标记的折线图
折线图如下:

图表包含内容有:
- 标题、图例、坐标轴
- 当鼠标移动到折线图上会有提示框出现
- 每条折线数据的最高点、最低点
- 每条折现数据的平均值线
源码展示:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flask+echarts项目</title>
	<!-- 导入下载的 echarts.min.js -->
    <script src="../../static/js/echarts.min.js"></script>
</head>
<body>
<div id="main" style="width:800px;height:500px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart=echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option={
	// 图表标题配置
	title:{
		text:'折线图'
	},
	// 提示框组件
	tooltip:{
		// 是否显示提示框
		show:true,
		// 触发类型,axis 移动到坐标轴就触发
		trigger:'axis'
	},
	// 图例配置项
	legend:{},
	// 辅助工具栏:保存图片、图表切换、区域缩放、展示数据、重置
	toolbox:{
		// 各工具的配置项
		feature:{
			// 保存图片工具设置
			saveAsImage:{show:true},
			// 动态类型转换设置,
			magicType:{show:true,type:['line','bar']},
			// 重置按钮
			restore:{}
		}
	},
	// X 轴配置项
	xAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'category',
		// x轴标签与坐标轴刻度的位置:false对齐,true中间
		boundaryGap:false,
		// 坐标轴名称,可以对每一个名称进行单独配置,比如:Mon 显示为红色
		data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
	},
	// y 轴配置项
	yAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'value',
		// 坐标轴刻度标签的相关设置。
		axisLabel:{
			formatter:"{value} °C"
		}
	},
	// 系列配置,根据不同图表有不同的配置
	series:[
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Heighest',
			// 图表类型
			type:'line',
			// 数据内容
			data:[10, 11, 13, 11, 12, 12, 9],
			// 图表标注内容
			markPoint:{
				data:[
					{type:"max",name:"最大值"},
					{type:"min",name:"最小值"},
				]
			},
			// 图线标注
			markLine:{
				data:[{type:"average",name:"平均值"}]
			}
		},
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Lowest',
			// 图表类型
			type:'line',
			// 数据内容
			data:[1, -2, 2, 5, 3, 2, 0],
			// 图表标注内容
			markPoint:{
				data:[
					{type:"min",name:"最小值"}
				]
			},
			// 图线标注
			markLine:{
				data:[{type:"average",name:"平均值"}]
			}
		},
	]
};
//使用刚指定的配置项和数据显示图像
myChart.setOption(option);
</script>
</body>
</html>
绘制多条折线图
折线图如下:

图表包含内容有:
- 标题、图例、坐标轴
- 当鼠标移动到折线图上会显示多条折现数据提示框
源码展示:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flask+echarts项目</title>
	<!-- 导入下载的 echarts.min.js -->
    <script src="../../static/js/echarts.min.js"></script>
</head>
<body>
<div id="main" style="width:800px;height:500px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart=echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option={
	// 图表标题配置
	title:{
		text:'折线图',
		subtext:'点击右上方图标试试'
	},
	// 提示框组件
	tooltip:{
		// 是否显示提示框
		show:true,
		// 触发类型,axis 移动到坐标轴就触发
		trigger:'axis'
	},
	// 图例配置项
	legend:{
		// 图例的数据数组,
		data:["Email","Union Ads","Video Ads","Direct","Search Engine"],
	},
	// 直角坐标系内绘图网格
	grid:{
		// grid 组件离容器左侧的距离
		left:"3%",
		// grid 组件离容器右侧的距离。
		right:"3%",
		// grid 组件离容器下侧的距离
		bottom:"3%",
		// grid 区域是否包含坐标轴的刻度标签。
		containLabel:true
	},
	// 辅助工具栏:保存图片、图表切换、区域缩放、展示数据、重置
	toolbox:{
		// 各工具的配置项
		feature:{
			// 保存图片工具设置
			saveAsImage:{show:true},
			// 动态类型转换设置,
			magicType:{show:true,type:['line','bar','stack']}
		}
	},
	// X 轴配置项
	xAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'category',
		// x轴标签与坐标轴刻度的位置:false对齐,true中间
		boundaryGap:false,
		// 坐标轴名称,可以对每一个名称进行单独配置,比如:Mon 显示为红色
		data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
	},
	// y 轴配置项
	yAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'value',
	},
	// 系列配置,根据不同图表有不同的配置
	series:[
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Email',
			// 图表类型
			type:'line',
			// 数据内容
			data:[120, 132, 101, 134, 90, 230, 210],
			// 是否平滑曲线显示
			smooth: true
		},
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Union Ads',
			// 图表类型
			type:'line',
			// 数据内容
			data:[220, 182, 191, 234, 290, 330, 310],
			// 是否平滑曲线显示
			smooth: true
		},
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Video Ads',
			// 图表类型
			type:'line',
			// 数据内容
			data:[150, 232, 201, 154, 190, 330, 410],
			// 是否平滑曲线显示
			smooth: true
		},
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Direct',
			// 图表类型
			type:'line',
			// 数据内容
			data:[320, 332, 301, 334, 390, 330, 320],
			// 是否平滑曲线显示
			smooth: true
		},
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Search Engine',
			// 图表类型
			type:'line',
			// 数据内容
			data:[820, 932, 901, 934, 1290, 1330, 1320],
			// 是否平滑曲线显示
			smooth: true
		}
	]
};
//使用刚指定的配置项和数据显示图像
myChart.setOption(option);
</script>
</body>
</html>
绘制带标签的折线图
折线图如下:

图表包含内容有:
- 标题、图例、坐标轴
- 折线图上展示数据标签
- 当鼠标移动到折线图上会显示多条折现数据提示框
源码展示:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flask+echarts项目</title>
	<!-- 导入下载的 echarts.min.js -->
    <script src="../../static/js/echarts.min.js"></script>
</head>
<body>
<div id="main" style="width:800px;height:500px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart=echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option={
	// 图表标题配置
	title:{
		text:'折线图',
		subtext:'点击右上方图标试试'
	},
	// 提示框组件
	tooltip:{
		// 是否显示提示框
		show:true,
		// 触发类型,axis 移动到坐标轴就触发
		trigger:'axis'
	},
	// 图例配置项
	legend:{
		// 图例的数据数组,
		data:["Email","Union Ads","Video Ads","Direct","Search Engine"],
	},
	// 直角坐标系内绘图网格
	grid:{
		// grid 组件离容器左侧的距离
		left:"3%",
		// grid 组件离容器右侧的距离。
		right:"3%",
		// grid 组件离容器下侧的距离
		bottom:"3%",
		// grid 区域是否包含坐标轴的刻度标签。
		containLabel:true
	},
	// 辅助工具栏:保存图片、图表切换、区域缩放、展示数据、重置
	toolbox:{
		// 各工具的配置项
		feature:{
			// 保存图片工具设置
			saveAsImage:{show:true},
			// 动态类型转换设置,
			magicType:{show:true,type:['line','bar','stack']}
		}
	},
	// X 轴配置项
	xAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'category',
		// x轴标签与坐标轴刻度的位置:false对齐,true中间
		boundaryGap:false,
		// 坐标轴名称,可以对每一个名称进行单独配置,比如:Mon 显示为红色
		data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
	},
	// y 轴配置项
	yAxis:{
		// 坐标轴类型,category 类目轴、value数值轴、time时间轴、log对数轴
		type:'value',
	},
	// 系列配置,根据不同图表有不同的配置
	series:[
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Email',
			// 图表类型
			type:'line',
			// 数据内容
			data:[120, 132, 101, 134, 90, 230, 210],
			// 是否平滑曲线显示
			smooth: true
		},
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Union Ads',
			// 图表类型
			type:'line',
			// 数据内容
			data:[220, 182, 191, 234, 290, 330, 310],
			// 是否平滑曲线显示
			smooth: true
		},
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Video Ads',
			// 图表类型
			type:'line',
			// 数据内容
			data:[150, 232, 201, 154, 190, 330, 410],
			// 是否平滑曲线显示
			smooth: true
		},
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Direct',
			// 图表类型
			type:'line',
			// 数据内容
			data:[320, 332, 301, 334, 390, 330, 320],
			// 是否平滑曲线显示
			smooth: true
		},
		{
			// 系列名称,用于tooltip显示,legend图例筛选
			name:'Search Engine',
			// 图表类型
			type:'line',
			// 添加标签
			label:{
				show:true,
				position:"top"
			},
			// 数据内容
			data:[820, 932, 901, 934, 1290, 1330, 1320],
			// 是否平滑曲线显示
			smooth: true
		}
	]
};
//使用刚指定的配置项和数据显示图像
myChart.setOption(option);
</script>
</body>
</html>
完整源码地址
链接:https://pan.baidu.com/s/1cNwjkaG1-nZQPqjcnWiDfA?pwd=8c9v
 提取码:8c9v



















