Echarts绘制折线图,超简单,源码点击即可运行!【文末源码地址】

news2025/1/10 16:33:04

文章目录

  • 前言
  • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/567745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day12 - 图像修复

在图像处理的过程中&#xff0c;经常会遇到图像存在多余的线条或者噪声的情况&#xff0c;对于这种情况我们会先对图像进行预处理&#xff0c;去除掉对图形内容有影响的噪声&#xff0c;在进行后续的处理。 本节实验我们介绍使用图像膨胀来处理图形的多余线条&#xff0c;进行…

web前端 --- CSS(03) -- 元素定位

元素定位&#xff1a;标签在页面中的位置问题 &#xff08;1&#xff09;分类 绝对定位&#xff1a;将需要的元素直接定位固定的位置 PS&#xff1a;绝对定位&#xff0c;必须指定一个相对点&#xff08;一般是父标签&#xff09;。相对的标签必须是相对定位或者绝对定位【重…

chatgpt赋能python:PythonSearchGroup-Python搜索小组

Python Search Group - Python搜索小组 如果你是一个Python程序员&#xff0c;或者对Python编程语言感兴趣&#xff0c;那么你一定听说过Python Search Group。Python Search Group是一个专注于Python搜索和搜索引擎的小组&#xff0c;他们致力于提供高效的Python搜索工具和搜…

【Netty】字节缓冲区 ByteBuf(七)(下)

文章目录 前言一、实现原理二、ByteBuf 的使用案例三、ByteBuf 的3种使用模式3.1 堆缓冲模式3.2 直接缓冲区模式3.3 复合缓冲区模式 总结 前言 回顾Netty系列文章&#xff1a; Netty 概述&#xff08;一&#xff09;Netty 架构设计&#xff08;二&#xff09;Netty Channel 概…

鸿蒙Hi3861问题解决-DevEco VSCode无法跳转

一、问题描述 使用Windows和Ubuntu混合编译下载&#xff0c;在windows下搭建VSCodeDevEco Device Tool环境。通过SSH远程Ubuntu系统进行代码修改与编译。 在VSCode中&#xff0c;Ctrl左键&#xff0c;无法跳转。按住Ctrl键&#xff0c;鼠标移到函数上&#xff0c;也不会有任何反…

Flink+hadoop部署及Demo

Hadoop集群高可用部署 下载hadoop包地址 https://dlcdn.apache.org/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz 上传并解压到3台服务器 配置3台主机的hosts和免密登录 1.修改.bash_profile vi .bash_profile # HADOOP_HOME export HADOOP_HOME/apps/svr/hadoop-3.2.…

一分钟掌握技术术语:API(接口)|电商平台API接口展示示例

很多产品经理在项目开发过程中经常听到&#xff1a;你调我这个接口就好了&#xff1b;这个功能你写个接口给我&#xff1b;有什么不懂的就看下API接口文档。 开发经常说的接口是什么意思呢&#xff1f;术语解释&#xff1a;API&#xff08;Application Programming Interface&a…

GPT虚拟直播Demo系列(一)|GPT接入直播间实现主播与观众互动

摘要 ChatGPT和元宇宙都是当前数字化领域中非常热门的技术和应用。结合两者的优势和特点&#xff0c;可以探索出更多的应用场景和商业模式。例如&#xff0c;在元宇宙中使用ChatGPT进行自然语言交互&#xff0c;可以为用户提供更加智能化、个性化的服务和支持&#xff1b;在Ch…

成功拿到B站测开岗年薪50W+offer,面经分享

一面 首先&#xff0c;自我介绍&#xff0c;我介绍了自己的技术栈和项目。 技术栈提到过Spring、Redis、Kafka、Docker、K8s、大数据。 项目提到过接口和UI自动化。 我有个大数据平台项目&#xff0c;问了比较多&#xff0c;聊着聊着&#xff0c;提到自己研究过Selenium、T…

Vue3:组件基础(上)

Vue3&#xff1a;组件基础&#xff08;上&#xff09; Date: April 11, 2023 Sum: vite的基本使用、组件化开发思想、vue组件的构成、组件的基本使用、封装组件的案例 单页面应用程序 什么是单页面应用程序 单页面应用程序&#xff08;英文名&#xff1a;Single Page Applic…

【网络安全篇】如何当着面试官的面优雅地装逼!

从胡子的长度和忧郁的眼神我察觉到&#xff0c;面前坐着的这位面试官应该有点东西。 浑身上下流露着打过CTF的气场。我像以往一样&#xff0c;准备花3分钟的时间进行自我介绍。 在此期间&#xff0c;面试官面无表情但很有耐心的听着我balabala。 我按照原定计划顺利地介绍(吹…

国内行业垂直型SaaS公司有哪些?发展前景如何?

01 国内行业垂直型SaaS公司有哪些&#xff1f; 根据艾瑞咨询测算&#xff0c;2021年中国企业级应用软件市场规模达到2592亿元&#xff0c;SaaS在其中占比达到28.1%。 在企业数字化转型的全景图中&#xff0c;SaaS扮演着应用场景层面的关键作用&#xff0c;往往是企业特定环节数…

什么是护网?护网怎么参加?

一、什么是护网行动&#xff1f; 护网行动是以公安部牵头的&#xff0c;用以评估企事业单位的网络安全的活动。 具体实践中。公安部会组织攻防两方&#xff0c;进攻方会在一个月内对防守方发动网络攻击&#xff0c;检测出防守方&#xff08;企事业单位&#xff09;存在的安全…

智慧水务系统如何进行有效的数据架构整改?三个企业的改造实践分享

在智慧水务系统中&#xff0c;往往需要对设备中产生的液位、电流、水量等实时指标数据进行存储、分析及监控操作&#xff0c;而这些都是典型的时序数据。面对这些数据的处理时&#xff0c;很多企业在前期选择的大都是传统的实时数据库甚至关系型数据库&#xff0c;随着设备数量…

字段信息 详解,以易举例,创建数据库,程序自动创建数据库的前提,程序读写数据库的第一步

今天要做一个处理比较多数据的工具&#xff0c;就是桌面小软件&#xff0c;重新收拾起以前的易语言来编写&#xff0c;C#等也可以&#xff0c;反正就是最后的成品是绿色免安装。 数据多&#xff0c;优先考虑的就是数据库操作了&#xff0c;又快又好是吧&#xff1f; 第一步&am…

MyBatis源码学习五之插件

MyBatis源码学习五之插件 官网MyBatis插件介绍&#xff1a;https://mybatis.org/mybatis-3/zh/configuration.html#plugins MyBatis的插件使用的范围比较广&#xff0c;像PageHelper就是利用的插件的原理去实现的。插件会做一些通用的功能&#xff0c;比如打印日志&#xff0…

行业报告 | 2022文化科技十大前沿应用趋势(下)

原创 | 文 BFT机器人 04 商业创新 趋势7&#xff1a;区块链技术连接传统文化&#xff0c;数字藏品市场在探索中发展 核心内容&#xff1a; 2022年&#xff0c;数字藏品在区块链技术的助力下应运而生。狭义的数字藏品是指使用区块链技术、基于特定的文化资源所生成唯一的数字凭…

Linux学习记录——이십사 多线程(1)

文章目录 1、以Linux角度理解2、并不是所有的操作系统都这样管理3、页表和物理内存4、线程优缺点5、进程和线程的区别6、线程接口1、pthread_create.2、pthread_join3、线程终止取消正在终止的线程 4、线程分离 1、以Linux角度理解 创建一个进程时&#xff0c;会有pcb结构体&a…

Java集合回顾

能不能和你竭尽全力奔跑 / 向着海平线 / 余晖消逝之前都不算终点 文章目录 集合概述Java 集合概览List, Set, Queue, Map 四者的区别&#xff1f;集合框架底层数据结构总结如何选用集合?为什么要使用集合&#xff1f; ListArrayList 和 Array&#xff08;数组&#xff09;的区…

Java SpringBoot自动化网页爬虫项目

介绍 Java SpringBoot自动化网页爬虫&#xff0c;以图形化方式定义爬虫流程&#xff0c;不写代码即可完成爬虫。 平台以流程图的方式定义爬虫,是一个高度灵活可配置的爬虫平台 功能根据需要可定制化开发。 特性 支持Xpath/JsonPath/css选择器/正则提取/混搭提取 支持JSON/XML/二…