首页 前端知识 动态添加Echarts折线图

动态添加Echarts折线图

2025-03-01 12:03:35 前端知识 前端哥 616 683 我要收藏

思路:将图表的series改成动态的,主要使用到echarts的 setOption(option,true)

最终呈现效果:

代码:

   data () {
		return {
           	cpuOption: {  // 设置折线图基本样式
				color: ['rgb(28,146,255)', 'rgb(252,228,134)', 'rgb(8,132,8)', '#C1232B', '#B5C334', '#FCCE10', '#E87C25', '#27727B',
					'#FE8463', '#9BCA63', '#FAD860', '#F3A43B', '#60C0DD',
					'#D7504B', '#C6E579', '#F4E001', '#F0805A', '#26C0C0',
					'#FFB7DD', '#660077', '#FFCCCC', '#FFC8B4', '#550088',
					'#FFFFBB', '#FFAA33', '#99FFFF', '#CC00CC', '#FF77FF',
					'#CC00CC', '#C63300', '#F4E001', '#9955FF', '#66FF66',
					'#C1232B', '#B5C334', '#FCCE10', '#E87C25', '#27727B',
					'#FE8463', '#9BCA63', '#FAD860', '#F3A43B', '#60C0DD',
					'#D7504B', '#C6E579', '#F4E001', '#F0805A', '#26C0C0',
					'#FFB7DD', '#660077', '#FFCCCC', '#FFC8B4', '#550088',
					'#FFFFBB', '#FFAA33', '#99FFFF', '#CC00CC', '#FF77FF',
					'#CC00CC', '#C63300', '#F4E001', '#9955FF', '#66FF66'],
				tooltip: {
					trigger: 'axis'
				},
				avoidLabelOverlap: true,//这个开启,避免y轴数字和警示值重叠
				grid: {
					left: '1%',
					right: '4%',
					bottom: '3%',
					top: '10%',
					containLabel: true
				},
				xAxis: {
					type: 'category',
					boundaryGap: false,
					data: [],
					axisLabel: {
						interval: 0,//使x轴横坐标全部显示
						rotate: 80,
					},
				},
				yAxis: {
					type: 'value',
					axisLine: {
						show: false, //不显示坐标轴线
					},
				},
				series: [
					{
						name: '',
						data: [],
						symbolSize: 10,
						showSymbol: false,
						type: 'line'
					}
				]
			},

         }
   },


   methods:{
        // cpu使用率图表
		getCpUtility () {
			let resizeDiv = document.getElementById('changeContainer');
			const e = document.body.offsetWidth;
			var chart = this.$refs.cpUtility;
			if (chart) {
				var mychart = echarts.init(chart);
				mychart.setOption(this.cpuOption, true); // 设置为true就是不和之前的数据合并
				window.addEventListener("resize", function () {
					mychart.resize();
				});
				let listener = function () {
					mychart.resize();
				}
				EleResize.on(resizeDiv, listener)
			}
		},


        // 动态设置cpu的series
		setCupOption () {
			this.cpuOption.series = []  // 这里要清空,否则series会叠加之前的数据
			let data = []
			for (let i = 0;i < this.cpuEchartData.firstServerName.length;i++) { // 我这里是循环我在接口拿到的值,请根据您实际情况来看
				data = this.cpuEchartData.firstServerName[i]
				this.cpuOption.xAxis.data = this.cpuEchartData.dataText // x轴的值
				this.cpuOption.series.push({
					name: data.name, // 每个y轴数据的name(数据1、数据2)
					type: 'line',
					smooth: true,
					data: data.list, // y轴的值,是一个数组
					markLine: {
						label: {
							position: "start" //将警示值放在哪个位置,三个值“start”,"middle","end" 开始 中点 结束
						},
						lineStyle: {
							normal: {
								color: '#FA3934',
							}
						},
						data: [{
							yAxis: 70, // 警戒线的标注值
							label: {
								show: true,
							}
						},],
						symbol: 'none'
					}
				})
			}
			echarts.init(this.$refs.cpUtility).setOption(this.cpuOption, true) // 重新加载图表并赋值
		},
   }

转载请注明出处或者链接地址:https://www.qianduange.cn//article/22170.html
标签
评论
发布的文章

FastAPI 学习与使用

2025-03-01 12:03:03

(转)Java单例模式(1)

2025-03-01 12:03:58

Go语言学习笔记(五)

2025-03-01 12:03:58

微信小程序-二维码绘制

2025-03-01 12:03:57

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!