jQuery使用echarts循环插入图表

目录

jQuery动态循环插入echarts图表

y轴显示最大值和最小值

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


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>

使用 jQueryEcharts 进行图表展示时,你需要先引入 jQueryEcharts 的相关库文件。可以在 HTML 页面的 `<head>` 标签内添加以下代码: ```html <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> ``` 然后,在页面中创建一个容器元素,用于显示图表。例如: ```html <div id="chartContainer" style="width: 600px; height: 400px;"></div> ``` 接下来,你可以使用 jQuery 的 `$(document).ready()` 函数来确保页面加载完毕后执行相关代码。在该函数中,可以通过选择器选取容器元素,并利用 Echarts 提供的 API 创建图表并配置图表参数。 下面是一个简单的例子,展示如何使用 jQueryEcharts 创建一个柱状图: ```html <script> $(document).ready(function() { // 选择容器元素 var chartContainer = document.getElementById('chartContainer'); // 创建图表实例 var chart = echarts.init(chartContainer); // 配置图表参数 var option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: 'bar' }] }; // 使用配置项显示图表 chart.setOption(option); }); </script> ``` 在上述代码中,我们首先选择了 `chartContainer` 元素作为图表的容器,然后创建了一个 Echarts 实例。接着,配置了柱状图的 x 轴和 y 轴数据以及柱状图的数据系列。最后,通过调用 `setOption()` 函数将配置项应用到图表上。 这只是一个简单的示例,你可以根据自己的需求和 Echarts 的文档进一步探索更多的功能和配置选项。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值