jQuery使用echarts循环插入图表

news/2024/7/10 23:02:23 标签: jquery, echarts, 前端

目录

echarts%E5%9B%BE%E8%A1%A8-toc" style="margin-left:40px;">jQuery动态循环插入echarts图表

y轴显示最大值和最小值

x轴只显示两个值,开始日期和结束日期


echarts%E5%9B%BE%E8%A1%A8">jQuery动态循环插入echarts图表

html

.center_img_list 是我们循环数据的地方

					<div class="center_img shadow">
						<div class="center_img_border">
							<div class="center_img_list">
								<div class="canvas"></div>
								<div class="img_title">一站式 HarmonyOS/OpenHarmo…</div>
								<div class="label">计算机行业专题研究:华为算力进展不断</div>
							</div>
						</div>
					</div>

css

			.center_img_border {
				display: flex;
				justify-content: space-around;
				padding: 0.3rem;
			}

			.center_img_list {
				width: 30%;
			}

			.center_img_list .canvas {
				border: solid green 1px;
				border-radius: 10px;
				width: 100%;
				height: 206px;
			}

js

		var newList = [{
				"id": "1",
				"title": "计算机行业专题研究:华为算力进展不断",
				"content": "图表 1:双十一美妆销量",
				'list': [1, 20, 200, 3, 52, 99],
				'time': ['2023/01/02', '2023/01/03', '2023/02/02', '2023/02/22', '2023/03/02', '2023/04/02', ]
			},
			{
				"id": "2",
				"title": "计算机行业专题研究:华为算力进展不断",
				"content": "图表 2:双十一家电销量",
				'list': [1000, 20, 200, 3, 52, 99],
				'time': ['2023/01/02', '2023/01/03', '2023/02/02', '2023/02/22', '2023/03/02', '2023/04/02', ]
			},
			{
				"id": "3",
				"title": "计算机行业专题研究:华为算力进展不断",
				"content": "图表 3:双十一家具销量",
				'list': [100, 200, 220, 300, 2, 9],
				'time': ['2023/01/02', '2023/01/03', '2023/02/02', '2023/02/22', '2023/03/02', '2023/04/02', ]
			},
		]
		this.getEcharts(newList);
		// 图表数据
		function getEcharts(newList) {
			let echartsHtml = ''
			$.each(newList, function(i, v) {
				echartsHtml += `<div class="center_img_list">
								<div class="canvas" id="canvas` + i + `" ></div>
								<div class="img_title">${v.content}</div>
								<div class="label">${v.title}</div>
							</div>`
				$(document).ready(function() {
					changeECharts(v.list, v.time, 'canvas' + i);
				})
			})
			$(".center_img_border").html(echartsHtml);
		}

		function changeECharts(changePCTRYsList, x, idname) {
			var chartDom = document.getElementById(idname);
			let objDom = {}
			objDom[idname] = echarts.init(chartDom);
			let option = {
				xAxis: [{
					type: 'category',
					boundaryGap: true,
					data: x,
					axisLabel: {
						interval: x.length - 2,
						fontSize: 12,
					},
					axisLine: {
						show: false, //隐藏x轴
					},
					axisTick: {
						show: false, //刻度线
					},
				}],
				grid: {
					left: '',
					right: 30,
					bottom: 20,
					top: 20,
					containLabel: true
				},
				tooltip: {
					show: true,
					trigger: 'axis'
				},
				yAxis: {
					show: true,
					scale: true,
					alignTicks: true,
					axisTick: {
						inside: true
					},
					type: 'value',
					min: Math.min(...changePCTRYsList),
					max: Math.max(...changePCTRYsList)
				},
				series: [{
						name: '收盘价',
						data: changePCTRYsList,
						type: 'line',
						itemStyle: {
							color: '#649E92',
						},
						symbol: 'none',
					},
					{
						name: '成交量',
						data: changePCTRYsList,
						type: 'line',
						itemStyle: {
							color: '#649E92',
						},
						symbol: 'none',
					}
				]
			};
			objDom[idname].setOption(option);
		}

y轴显示最大值和最小值

y轴设置刻度最大和最小值

min: Math.min(...changePCTRYsList),
max: Math.max(...changePCTRYsList)

x轴只显示两个值,开始日期和结束日期

在xAxis中的axisLabel设置 interval: x.length - 2 即可

					axisLabel: {
						interval: x.length - 2,
						fontSize: 12,
					},

全部代码,可以直接运行

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>echarts</title>
		<style>
			*,
			html,
			body {
				padding: 0;
				margin: 0;
				box-sizing: border-box;
			}

			.center_img_border {
				display: flex;
				justify-content: space-around;
				padding: 0.3rem;
			}

			.center_img_list {
				width: 30%;
			}

			.center_img_list .canvas {
				border: solid green 1px;
				border-radius: 10px;
				width: 100%;
				height: 206px;
			}
		</style>
	</head>

	<body>
		<div class="center_img_border">
			<div class="center_img_list">
				<div class="canvas"></div>
				<div class="img_title">一站式 HarmonyOS/OpenHarmo…</div>
				<div class="label">计算机行业专题研究:华为算力进展不断</div>
			</div>
		</div>

	</body>
	<script type="text/javascript" src="js/echarts.js"></script>
	<script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
	<script>
		var newList = [{
				"id": "1",
				"title": "计算机行业专题研究:华为算力进展不断",
				"content": "图表 1:双十一美妆销量",
				'list': [1, 20, 200, 3, 52, 99],
				'time': ['2023/01/02', '2023/01/03', '2023/02/02', '2023/02/22', '2023/03/02', '2023/04/02', ]
			},
			{
				"id": "2",
				"title": "计算机行业专题研究:华为算力进展不断",
				"content": "图表 2:双十一家电销量",
				'list': [1000, 20, 200, 3, 52, 99],
				'time': ['2023/01/02', '2023/01/03', '2023/02/02', '2023/02/22', '2023/03/02', '2023/04/02', ]
			},
			{
				"id": "3",
				"title": "计算机行业专题研究:华为算力进展不断",
				"content": "图表 3:双十一家具销量",
				'list': [100, 200, 220, 300, 2, 9],
				'time': ['2023/01/02', '2023/01/03', '2023/02/02', '2023/02/22', '2023/03/02', '2023/04/02', ]
			},
		]
		this.getEcharts(newList);
		// 图表数据
		function getEcharts(newList) {
			let echartsHtml = ''
			$.each(newList, function(i, v) {
				echartsHtml += `<div class="center_img_list">
								<div class="canvas" id="canvas` + i + `" ></div>
								<div class="img_title">${v.content}</div>
								<div class="label">${v.title}</div>
							</div>`
				$(document).ready(function() {
					changeECharts(v.list, v.time, 'canvas' + i);
				})
			})
			$(".center_img_border").html(echartsHtml);
		}

		function changeECharts(changePCTRYsList, x, idname) {
			var chartDom = document.getElementById(idname);
			let objDom = {}
			objDom[idname] = echarts.init(chartDom);
			let option = {
				xAxis: [{
					type: 'category',
					boundaryGap: true,
					data: x,
					axisLabel: {
						interval: x.length - 2,
						fontSize: 12,
					},
					axisLine: {
						show: false, //隐藏x轴
					},
					axisTick: {
						show: false, //刻度线
					},
				}],
				grid: {
					left: '',
					right: 30,
					bottom: 20,
					top: 20,
					containLabel: true
				},
				tooltip: {
					show: true,
					trigger: 'axis'
				},
				yAxis: {
					show: true,
					scale: true,
					alignTicks: true,
					axisTick: {
						inside: true
					},
					type: 'value',
					min: Math.min(...changePCTRYsList),
					max: Math.max(...changePCTRYsList)
				},
				series: [{
						name: '收盘价',
						data: changePCTRYsList,
						type: 'line',
						itemStyle: {
							color: '#649E92',
						},
						symbol: 'none',
					},
					{
						name: '成交量',
						data: changePCTRYsList,
						type: 'line',
						itemStyle: {
							color: '#649E92',
						},
						symbol: 'none',
					}
				]
			};
			objDom[idname].setOption(option);
		}
	</script>

</html>


http://www.niftyadmin.cn/n/5183173.html

相关文章

响应系统的作用与实现

首先讨论什么是响应式数据和副作用函数&#xff0c;然后尝试实现一个相对完善的响应系统。在这个过程中&#xff0c;我们会遇到各种各样的问题&#xff0c;例如如何避免无限递归&#xff1f;为什么需要嵌套的副作用函数&#xff1f;两个副作用函数之间会产生哪些影响&#xff1…

Elasticsearch 中 term和 query 哪个更精确,有什么区别

1.Elasticsearch 中 term和 query 哪个更精确&#xff0c;有什么区别 在Elasticsearch中&#xff0c;term 和 query 是两个不同的概念&#xff0c;用于搜索和过滤数据。 Term&#xff08;词项&#xff09;: term 是一种用于精确匹配字段值的查询。它会精确匹配指定字段的确切…

【C++干货铺】解密vector底层逻辑

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 vector介绍 vector的使用 vector的定义和使用 vector的空间增长问题 vector的增删查改 解密vector及模拟实现 成员变量 成员函数 构造函数 拷贝构造函数…

故障演练的关键要素及重要性

故障演练是一种有计划的、模拟真实生产环境故障的活动。通过故意引入故障、模拟系统组件失效或模拟其他异常条件&#xff0c;团队可以观察并评估系统在这些情况下的反应。这有助于发现潜在的问题、改进应急响应和提高系统整体的可用性。 一、故障演练的关键要素 计划性&#xf…

接口测试 —— Jmeter 之测试片段的应用

一、什么是测试片段&#xff1f; 控制器上一种特殊的线程组&#xff0c;它与线程组处于一个层级。与线程组不同的就是&#xff1a;测试片段不会执行。它是一个模块控制器或者被控制器应用时才会被执行。通常与Include Controller或模块控制器一起使用。 1.1 那它有啥作用&…

今年跳槽成功测试工程师原来是掌握了这3个“潜规则”

随着金九银十逐渐进入尾声&#xff0c;还在观望机会的朋友们已经开始焦躁&#xff1a;“为什么我投的简历还没有回音&#xff1f;要不要趁现在裸辞好好找工作&#xff1f;” “金九银十”作为人们常说的传统“升职加薪”的黄金季节&#xff0c;也是许多人跳槽的理想时机。然而…

2023亚太杯数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

除了Excel中可以添加公式之外,在Word中也可以添加公式,不过都是基于表格

公式是必不可少的,因为它们有助于简化任何数学任务。微软的应用程序中有许多数学公式。微软应用程序之一的Word配备了一个公式功能,可以执行各种操作。本文将讨论如何在Word中使用和添加公式。 在Word中,公式主要用于表格。因此,你需要有一个表格才能在Word中使用公式。 …