echarts折线图根据条件修改数据完整版

Echarts动态生成图表,图表类型进行切换,长数据区域展示 也就是x轴,y轴的数据啦,你可以直接定义好,也可以使用接口数据(这样就是属于动态的了)。具体的内容在配置项里讲—>>>就是你在这个容器内,设置了其他的开关控制数据的变化。这时候呢,之前渲染好的图表就要替换成依靠新数据生成的新图表。千万千万不要选择直接替换!!!你会发现,新图表和老图表直接哥俩好,重叠在一起了。。。不能在单个容器上初始化多个 ECharts 实例功能看着老全了,就是有bug。动态类型切换的时候,活性不是很自由的切换。多句嘴,之前Echarts的工具栏的提示是中文的,现在的版本一般都提示英文。 阅读详情

作为一个后端人员,搞前端,搞了很长时间,这里面用到的是echarts,里面有相关的引入路径,如果是本地的,你们自己百度去下载.

不多说,直接贴代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/simplex.js"></script>
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">  
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<title>·系·统·建·议·</title>
	<style type="text/css">
		body{
		background: url("http://r.photo.store.qq.com/psb?/V129ilfv3emliO/RVjgkg6JvYTBw8WDY*Y3pXaZwc3NU.GAbXTOIISe1ho!/r/dL8AAAAAAAAA");
		background-attachment: fixed;
		
		}
		#top{
		background-color: #080135;
		width: 100%;
		color: white;
		font-size: 4em;
		font-weight: bold;
		margin: 0 auto;
		}
		#advise{
		background-color: #13227a;
		width: 90%;
		padding: 50px;
		border-radius: 10px;
		margin-left: 5%;
		margin-bottom: 5%;
		filter:alpha(Opacity=75);-moz-opacity:0.75;opacity: 0.75;
		}
		caption{
		font-size: 2em;
		color: white;
		}
		td{
		color:red;
		font-size: 1.5em;
		text-align: left;
		}
		th{
		color:#d4237a;
		font-size: 1.8em;
		}
	</style>
</head>
<body  style="height: 100%; margin: 0">
	<div id="top" align="center">·门·店·考·核·</div>
	<hr>
	<div id="container" style="min-width:400px;height:400px"></div>
	<div>
		<img style="filter:alpha(Opacity=70);-moz-opacity:0.7;opacity: 0.7;width:40px;margin:20px 0 50px 5%;padding-top: 10px;" 
		src="http://r.photo.store.qq.com/psb?/V129ilfv3emliO/5ZKF6*DJjQZwJeJMpXbD.Ux8ZZ.Iw7kqntLMsVIUrXI!/r/dLYAAAAAAAAA"/>
		<font style="font-size: 3em;color: #1296db;font-weight: bold">系统建议</font>
	</div>
	<div id="advise">
		<table class="table">
			<caption>系统建议一</caption>
			<thead>
		      <tr>
		         <th></th>
		         <th>建议</th>
		      </tr>
		   </thead>
			<tbody>
				<tr>
					<td style="width:10%;"><input id="checkBox1" type="checkbox" name="vehicle" value="selected" checked="checked" onclick="changeData1()"/></td>
					<td>开启店铺满就送活动撒大声地所多所多大大</td>
					
				</tr>
				<tr>
					<td><input id="checkBox2" type="checkbox" name="vehicle" value="selected" checked="checked" onclick="changeData2()"/></td>
					<td>S开启店铺满就送活动优惠券大大立减,让你想不到的优惠</td>
					
				</tr>
				
			</tbody>
		</table>
		<table class="table">
			<caption>系统建议二</caption>
			<thead>
		      <tr>
		         <th></th>
		         <th>建议</th>
		      </tr>
		   </thead>
			<tbody>
				<tr>
					<td style="width:10%;"><input id="checkBox3" type="checkbox" name="vehicle" value="selected" checked="checked" onclick="changeData3()"/></td>
					<td>线下充值优惠返利</td>
				</tr>
			</tbody>
		</table>
		<table class="table">
			<caption>系统建议三</caption>
			<thead>
		      <tr>
		         <th></th>
		         <th>建议</th>
		      </tr>
		   </thead>
			<tbody>
				<tr>
					<td style="width:10%;"><input id="checkBox4" type="checkbox" name="vehicle" value="selected" checked="checked" onclick="changeData4()"/></td>
					<td>二维码扫描成为本店会员领取优惠券</td>
				</tr>
			</tbody>
		</table>
	</div>
</body>
<script type="text/javascript">
	var list =[{name:'特惠交易客户数',value:[120, 132, 101, 285]},{name:'特惠交易量',value:[220, 182, 191, 234]},{name:'产能比',value:[150, 232, 201, 154]}];
	var name1=list[0].name;
	var name2=list[1].name;
	var name3=list[2].name;
	var dom = document.getElementById("container");
	var myChart = echarts.init(dom);
	let date = new Date();
	var months=[];
	var year = date.getFullYear();
	var month =date.getMonth()+1;
	if(month==1){
		months.push((year-1)+'年'+(month+10)+'月');
		months.push((year-1)+'年'+(month+11)+'月');
		months.push(year+'年'+month+'月');
		months.push(year+'年'+(month+1)+'月');
	}
	if(month==2){
		months.push((year-1)+'年'+(month+10)+'月');
		months.push(year+'年'+(month-1)+'月');
		months.push(year+'年'+month+'月');
		months.push(year+'年'+(month+1)+'月');
	}
	if(month==12){
		months.push(year+'年'+(month-2)+'月');
		months.push(year+'年'+(month-1)+'月');
		months.push(year+'年'+month+'月');
		months.push((year+1)+'年'+(month-11)+'月');
	}
	if(month !=1||month !=2||month !=12){
		months.push(year+'年'+(month-2)+'月');
		months.push(year+'年'+(month-1)+'月');
		months.push(year+'年'+month+'月');
		months.push(year+'年'+(month+1)+'月');
	}
	option= null;
	option = {
		    
		    title: {
				text: '建议收益 vs 原本收益',
				x: 'center',
				textStyle: {//主标题文本样式{"fontSize": 18,"fontWeight": "bolder","color": "#333"}
	                fontFamily: 'Arial, Verdana, sans...',
	 				borderColor: '#ccc',
	                //fontStyle: 'normal',
	                fontWeight: 'bolder',
					color:'#2EBBD9'
	            },
			},
			color: ['#1296db',"#1afa29","#d4237a"],                       // 图例文字颜色
		    legend: {
		        data:[name1,name2,name3],
		        x:'right',
		        y:'bottom',
		        orient: 'vertical',
		        icon: "circle",   //  这个字段控制形状 
		        itemHeight: 50,
		        itemGap: 40,
		        padding: [0,50,100,0],
		        selectedMode: "single",//控制data只显示一条数据
		        textStyle: {
		            fontSize:20,
		            color:'#ccc',
		        },
		        selected: {
		        	name1: true,
		        	name2: false,
		        	name3: false,
		        }
		    },
		   
		    calculable : true,
		    grid : {
               left : '10%',   //组件离容器左侧的距离
               right : '30%',
               bottom : '5%',
               containLabel : true     //grid 区域是否包含坐标轴的刻度标签
            },
		    xAxis : [
		        {
		            type : 'category',
		            boundaryGap : false,
		            data : months,
		            axisLine:{
                        lineStyle:{
                            color:'#f4ea2a',
                            width:3,//这里是为了突出显示加上的
                        }
                    },
                    axisLabel: {
                        show: true,
                         textStyle: {
                           color: '#1afa29',  //更改坐标轴文字颜色
                           fontSize : 20      //更改坐标轴文字大小
                         }
                      },
		        }
		    ],
		    yAxis : [
		        {
		        	type : 'value',
		        	name: '收益效果',   //定义Y轴名称
		        	nameLocation: "middle", //左侧居中
		        	nameTextStyle: {
		                color: '#1296db',//设置name的颜色
		                fontSize:20
		            },
			        axisTick: {            // 坐标轴小标记
			            show:true
			        },
			        splitLine: {show:false},
			        axisLabel: {
			            interval:1,
			            show: false,//关闭y轴的数值
			            /* textStyle: {
			                color: '#666',  //这里可以不写
			            } */
		        	},
		        	axisLine:{
                        lineStyle:{
                            color:'#f4ea2a',
                            width:3,//这里是为了突出显示加上的
                        }
                    } 

		        }
		    ],
		    series : [
		        {
		            name:list[0].name,
		            type:'line',
		            data:list[0].value
		        },
		        {
		            name:list[1].name,
		            type:'line',
		            data:list[1].value
		        },
		        {
		            name:list[2].name,
		            type:'line',
		            data:list[2].value
		        }
		    ]
		};
	if (option && typeof option === "object") {
        myChart.setOption(option, true);
    } 
	var v1 = list[0].value[3];
	var v2 = list[1].value[3];
	var v3 = list[2].value[3];
	var values1 = [];
	var values2 = [];
	var values3 = [];
    values1.push(list[0].value[0]);
    values1.push(list[0].value[1]);
    values1.push(list[0].value[2]);
    values2.push(list[1].value[0]);
    values2.push(list[1].value[1]);
    values2.push(list[1].value[2]);
    values3.push(list[2].value[0]);
    values3.push(list[2].value[1]);
    values3.push(list[2].value[2]);
    var map={};

	function changeData1() {
        var checkBox1 = document.getElementById("checkBox1").checked;
		map = changeData(checkBox1,values1,values2,values3);
        updateData(map[0], map[1], map[2]);
    }

	function changeData2(){
		var checkBox2 = document.getElementById("checkBox2").checked;
        map = changeData(checkBox2,values1,values2,values3);
        updateData(map[0], map[1], map[2]);
	}
	
	function changeData3(){
		var checkBox3 = document.getElementById("checkBox3").checked;
        map = changeData(checkBox3,values1,values2,values3);
        updateData(map[0], map[1], map[2]);
	}
	
	function changeData4(){
		var checkBox4 = document.getElementById("checkBox4").checked;
        map = changeData(checkBox4,values1,values2,values3);
        updateData(map[0], map[1], map[2]);
	}

    function changeData(f,values1,values2,values3){
        map={};
        if (f) {
            v1 = v1 * 1.3;
            v2 = v2 * 1.3;
            v3 = v3 * 1.3;
            if(values1.length===4){
                values1.splice(3,1);//指定位置移除数据
            }
            if(values2.length===4){
                values2.splice(3,1);
            }
            if(values3.length===4){
                values3.splice(3,1);
            }
            values1.push(v1);
            values2.push(v2);
            values3.push(v3);
            map[0]=values1;
            map[1]=values2;
            map[2]=values3;
        } else {
            v1 = v1 / 1.3;
            v2 = v2 / 1.3;
            v3 = v3 / 1.3;
            if(values1.length===4){
                values1.splice(3,1);
            }
            if(values2.length===4){
                values2.splice(3,1);
            }
            if(values3.length===4){
                values3.splice(3,1);
            }
            values1.push(v1);
            values2.push(v2);
            values3.push(v3);
            map[0]=values1;
            map[1]=values2;
            map[2]=values3;
        }
        return map;
    }

	function updateData(data1,data2,data3){
		myChart.setOption({
			series : [
				        {
				            name:list[0].name,
				            type:'line',
				            data:data1
				        },
				        {
				            name:list[1].name,
				            type:'line',
				            data:data2
				        },
				        {
				            name:list[2].name,
				            type:'line',
				            data:data3
				        }
				    ]
		}); 
	}
	
</script>
</html>

这里提醒自己的,如果是集合,没有什么add()和push(),而是:

//往集合里面添加数据
var map={};
map[0]=data1;
map[1]=data2;
map[3]=data3;

是直接往里面赋值的!

echarts折线图分段用不同颜色显示 之前在用echarts做折线图的时候,需要一条线段根据某个条件用两种颜色显示。在网上找到的解决方案都是series.data用两组数据模拟,由于我的数据是动态加载的,所以这种方法并不怎么可取,因此我就去官方文档找看有没有相关的配置项(先百度再找官方文档实在不是什么好的习惯,尤其是官方文档还是中文的),果然,在官网上看到一个这样的实例:点击查看,发现是visualMap的作用,当然官网上的这个效果也是 阅读详情

相关推荐

ECharts进度条,环饼图,折线图案例记录

ECharts 没有提供进度条类型的图表,但是可以根据仪表盘类型修改得到,上图 官方文档请看:ECharts官方配置项文档 上代码: <template> <div class="box-container"> <BoxHeader info="车辆类型" utils="万辆" type="dis" /> <div class="content"> <div class="item_image"> <d..

lwx931449660的博客 9011

Echarts 折线图完全配置指南 - 手把手教你设置 Echarts 折线图详细教程

本文首发:《Echarts 折线图完全配置指南》 Echarts 折线图是图表中最常用的显示形式之一。使用 Echarts 做出基本的折线图很简单,但要是想把多组数据放在一张图表中,展示的漂亮又直观就不容易了。本文将带领大家从最基本的折线图,一步步完善,最终做出可读性很高的可视化图表。 根据本教程在卡拉云中搭建的折线图 Demo,你可以立即注册卡拉云,跟随本教程学习 跟随本教程你将学到 1.折线外观属性 折线增加弧线平滑过渡 折线图变为散状圆点 实线改为虚线 折线指定颜色 增加数据显示 表格外观属.

蒋川@卡拉云 1万+

Echarts实现动态折线图的定时刷新

在做项目的过程中,遇到一个需求:要从后台读取数据,并对echarts进行实时更新。后台只需要将数据以JSON方式返回即可。(1)首先是前端页面的修改。(2)后台代码的实现。

weixin_47382783的博客 9614

关于echars折线图修改内容

关于折线图各种颜色的修改 1.轴线颜色样式修改:                  axisLine : {    // 轴线show: true,                                         lineStyle: {//轴线颜色样式                                             color:"#d3d3d3",

caicai5800的博客 1704

使用echarts 实现折线图

需求:使用echarts 实现折线图,右侧表格展示对应数据,可以修改数据,右侧输入框更改数据后刷新图表。效果如图: 主要代码如下: /*css*/ .apGamma-td { text-align: center; line-height: 36px; width: 36px; height: 36px; background: rgb(85, 218, 206); border:.

zcc的博客 1411

echarts vue element-ui 实现根据选择项年月日时间切换数据显示折线图,vue页面监听自适应(一)

element-ui 实现根据选择项年月日时间切换数据显示折线图,vue页面监听自适应

总结前端开发中遇到的问题,分享前端知识 5094

echarts饼图、折线图属性设置大全(全注释建议收藏)

全注释echarts

qq_52151772的博客 5358

simplex.js

simplex.js文件下载,辅助echarts插件开发 完整文件 下载可用

echarts折线图动态修改折线颜色

需求 选择每条线的颜色、粗细绘制折线图。 解决 动态修改option中对应的样式属性即可。查看echarts官方文档,进行了如下修改。 修改一(明显有问题可跳过,仅做记录。) 效果一: 配置一: option = { …… "series": [ { ……, "markPoint": { ...

Beam 1万+

单纯形法Simplex.m

线性规划是运筹学中一个很重要的分支,单纯形法是解决其的一个重要方法,该代码实现了其功能。

ubuntu为Docker配置代理

我们平常在ubuntu终端中使用curl或git命令时,往往会很慢。所以,首先需要给ubuntu终端环境添加代理。查看自身那个软件的端口号,我这里是7890。

不想随波逐流的大学生一枚,我们每个人都在努力奔跑 1645

手把手教你用ECharts画折线图

导读:折线图是一种基础图表,适合表示数据的变化趋势,常用于时间序列数据的表示。作者:王大伟来源:大数据DT(ID:hzdashuju)在正式学习之前,先来了解一个ECharts官网提供的...

华章IT官方博客 9315

使用Power Automate在Calendar中创建会议

Power Automate提供了一个create event操作,用来在calendar日历中创建一个会议。这里使用的触发器是SharePoint列表触发器,每当在列表中新建一个item,就会触发工作流,然后在所有参会人员的日历中创建一个会议,并且发邮件给参会人员。 列表结构如下,包含会议主题,会议室,开始时间,结束时间和参会人员信息。其中attendees为参会人员,包含多值的用户列。 P...

shrenk的专栏 1854

echarts修改折线图样式,总结踩坑以及常用

以折线图为例。最终呈现的效果是这样的 在最外层可以设置,距离外层box的距离 myChart.setOption({ grid: { //距离外层box左右位置 x: 30,//左 y: 45,//上 x2: 45,//右 y2: 40,//下 borderWidth: 1, }, }) 在xAxis,x坐标轴中,可以设置的样式,同样可作

qq_40798486的博客 5311

D类功放LC滤波器实战:从Q值0.707到EMI优化的完整设计流程

本文详细解析了D类功放LC滤波器的完整设计流程,从确定截止频率与Q值0.707的理论基础出发,到参数计算、仿真验证及关键元器件选型,并提供了应对EMI超标和过流保护等实际问题的进阶调试策略。文章强调,精准的LC滤波器设计是平衡音质、稳定性与电磁兼容性的关键,尤其需关注电感饱和电流与电容直流偏置等细节。

e4f5g6h7的博客 1038

FreeSWITCH安装指南:三种部署方式解析与实践对比

Freeswitch部署方案比较:Yum安装简单快捷但灵活性差;源码安装可定制性强,适合深度开发和性能优化;Docker部署环境一致性好但网络配置复杂。生产环境推荐源码安装以获得最佳性能和定制能力,而Docker适合快速部署和扩展。不同方案各有利弊,需根据具体需求选择。

c_zyer的博客 2147

修改 Echarts 折线图中线的颜色

属性中设置一个数组对象,每个数组对象代表一个渐变色段,分别设置为绿色、蓝色和绿色,每个渐变颜色段的位置由。data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']offset: 1, // 右侧绿色渐变结束位置,到 1 结束。offset: 0, // 渐变起始位置,从 0 开始。offset: 1, // 渐变结束位置,到 1 结束。offset: 1, // 绿色渐变结束位置,到 1 结束。offset: 1, // 绿色渐变结束位置,到 1 结束。

a99101的博客 1万+

暴力破解pdf文档密码

相信小伙伴们都遇到这种情况;你收到了一些标题很吸引人的pdf文档 或者是重要数据泄露 学习资料总结,再或者是某机构的押题密卷,打开pdf却提示你要输入密码 因为不知道密码 只能弃罢。我就遇到过这种情况 网友发来了标题为某天一的押题密卷 ,我也想看看这个卷子的题怎么样,因为被设置了密码 我尝试用6到10位的纯数字组合来暴力破解这个pdf,结果三 四个小时都没找到正确的密码。有些网友为破解这个密码 请某宝某多来破解 也都没有破解成功。

shelter1234567的博客 1万+

折线图_手把手教你用ECharts画折线图

导读:折线图是一种基础图表,适合表示数据的变化趋势,常用于时间序列数据的表示。作者:王大伟来源:华章科技在正式学习之前,先来了解一个ECharts官网提供的很好用的功能。该功能可以实时显示代码的效果,使用方法说明如下。首先,打开ECharts官网,在“实例”菜单中选择任意一个图,如图4-1所示。https://echarts.apache.org/exampl-es/zh/editor.html?...

weixin_32059509的博客 6392

[QMT和ptrade量化交易小白入门]-120、卖出深度虚值期权的三重过滤策略

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 285

[深入研究4G/5G/6G专题-31]: 5G NR开机流程5.2 - UE Attach流程(Registeration Request/Accept/Complete)

目录前言:前置条件:第1章 5G NR UE attach流程(从UE log的视角看)1.0 NAS消息解析器1.1 消息交互流程1.2 UE Registeration Request消息(AMF->基站->UE)1.3 AMF Registeration Accept消息(AMF->基站->UE)1.4 UE Register complete消息(UE->基站->AMF)第2章 UE Register...............

文火冰糖(王文兵)的博客 7万+

Echarts折线图的x和y轴坐标颜色修改

继续对Echarts的属性进行探索,关于如何修改Echarts的x和y轴坐标颜色的问题,继续看,主要修改代码的地方: /*改变xy轴颜色*/ axisLine: { lineStyle: { color: '#e3...

祈澈菇凉 2万+

STM32驱动HC-SR04超声波模块

本篇文章将带大家使用HAL库驱动HC-SR04超声波模块。超声波模块作为智能小车必备的模块,要学习智能小车的同学是必须掌握好这个模块的使用的。HC-SR04是一种常用的超声波传感器模块,也被称为超声波测距模块,广泛应用于各种自动化控制和测距系统中。它通常由超声波发射器、接收器、控制电路和外壳组成,可以实现非接触式的距离测量。下面是HC-SR04超声波模块的一些特性和技术参数:距离测量范围:2cm ~ 400cm(可调)。测量精度:0.3cm。工作电压:DC 5V。工作电流:15mA。

m0_49476241的博客 7689

ECharts折线图渲染速度变慢、ECharts折线图数据为0时不显示线条

写在前面:在公司做一个大屏可视化项目时,遇到了这样的需求: 1.使折线图渲染速度变慢; 2.当折线图数据为0时不显示线条 本文就拿ECharts给的示例做演示。 示例代码如下: import * as echarts from 'echarts'; var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom, 'dark'); var option; option = { xAxi.

huangfuyk.的博客 8063

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

echarts-折线图与柱状图,图形的标记,堆叠

如果要画一个图标就需要在series里加一个对象。data中定义图标的数据。xAxisIndex、yAxisIndex、polarIndex(radiusAxis,angleAxis等) 用来选择使用哪条坐标轴。coordinateSystem 用来选择坐标系是什么坐标系,默认是直角坐标系。id,name用来给图表一个唯一的标识,用于setOption的更新或用id获取图表。

m0_74019046的博客 2897

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: echarts雷达图多条数据切换只展示一条数据
下一篇: html移动端底部导航菜单按钮(仿各大app底部)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值