Echarts图表使用过程中遇到的问题

news/2024/7/24 11:34:06 标签: html5, javascript, html

Echarts

1.el-tab 切换echarts

在这里插入图片描述

  • 监听el-tab的@tab-change= "handleChange"事件

  • 在handleChange中对echarts实例自适应大小

  	 //	myChart = echarts.init(document.getElementById("pie-echart"));
  		nextTick(()=>{
  			myChart.resize()	
  		})

2.自定义tooltip

在这里插入图片描述

tooltip: {
	trigger: 'axis',
	formatter:function(params)	{
	var relVal = params[0].name;
	for (var i = 0, l = params.length; i < l; i++) {
	relVal += '<br/>' +params[i].marker+ params[i].seriesName +'&nbsp;&nbsp;&nbsp;' + params[i].value +"%" 
	}
 return relVal;
	}
},

堆叠自定义
在这里插入图片描述

tooltip: {
	trigger: 'axis',
	formatter:function(params)
	{
		params = params.reverse()
		var relVal = params[0].name + '<br/>';
		for (var i = 0, l = params.length; i < l; i++) {									 
		relVal += params[i].marker + params[i].seriesName + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + params[i].data + '%'+ '</br>'
		}
	return relVal;
	}
},

3.区域缩放( 更多配置参考最下方的引用参考4)

  • 问题:当数据过多展示不下,横坐标和数据会错位,看着图表会混乱。
    在这里插入图片描述
dataZoom: [
         {
           type: 'inside', //slider表示有滑动块的,inside表示内置的
           show: true,
           xAxisIndex: [0],
         }
       ],
  • 解决: 使用dataZoom可以对横坐标进行放大
    在这里插入图片描述
  • type为‘slider’时
    在这里插入图片描述
  • 问题: 滑块和legend重合,不能进行点击图表数据筛选
  • 解决: 修改滑块大小或者位置
html" title=javascript>javascript">//修改滑块大小
	dataZoom: [
            {
              type: 'slider', //slider表示有滑动块的,inside表示内置的
              show: true,
              xAxisIndex: [0],
			  height: 15, // 滑块高度
            },
  ],

在这里插入图片描述

4.柱状图tooltips显示 横坐标也显示为纵坐标

在这里插入图片描述
正常的显示
在这里插入图片描述

  • 原因: data数据中的name属性是指数据项的名称,会覆盖掉tootips横坐标的位置
  const eData =  data.map((item) => {
       const monthlyData =  item.monthlyData.map(oitem => {
         return {
           value: oitem,
           // name: item.name,data 中的数据项中的name是数据项名称,会覆盖掉tootips横坐标的位置
           code: item.code
         }
       })
       return {
         data: monthlyData,
         name: item.name,
         code: item.code
       }
     })
     this.seriesData = eData.map(o => {
       return {
         ...o,
         type: 'bar',
         barWidth: 30,
       }
     })
  • 解决: data数据中不要带name字段,name默认指的是数据项的名称

5.legend 滚动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AagRsr4N-1637632849327)(img/1634714825228.png)]

 legend: {    
	left: '10%',  
    data: this.legendData,    
    type: 'scroll' //滚动   
},

6.echarts实例的创建和销毁

  • 问题: tab切换 使用多个echarts图时 要在进行echarts实例的销毁,不然会出现下边的警告
    在这里插入图片描述

  • 解决: 在实例创建之前,判断是否存在实例,若存在则销毁,不存在则新建实例

  	myChart	&& myChart.dispose();
  	myChart = echarts.init(document.getElementById("echart"));

7.警告

在这里插入图片描述

  • 原因: echarts.init()在页面未渲染时就先页面一步加载了。
  • 解决: 页面中是第二个tab切换才开始有柱状图显示,柱状图的init要在tab切换到第二个才创建。

8.多个不同图表时自适应大小

  • 问题:使用onresize失效,多个图表时,仅对最后一个生效

    		window.onresize = function () {//自适应大小
    						barChart.resize();
    		}
    
  • 解决

  	window.addEventListener('resize', () => {  // 自适应大小
          	myChart.resize();
    }, false);

9. 图表数据二次渲染tooltips成倍增加

在这里插入图片描述

  • 原因: series数据在更新之前没有进行初始化置空
  • 解决: 在切换更新图表数据时先把series数据清空

参考:
1.tabs标签页中使用Echarts图表常见警告以及处理方式
2.echarts 自适应屏幕 失效 window.onresize
3. echarts.js报错:1722 There is a chart instance already initialized on the dom
4.echarts中datazoom 配置


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

相关文章

VirtualBox 4.3“不能为虚拟电脑 打开一个新任务”解决方案 - 转

最近做项目因为设计不同网络&#xff0c;还要大家文件和数据库服务器环境&#xff0c;所以需要多台机器进行测试&#xff0c;最简单的方法当然是跑多个虚拟机了。虽然不可否认 VMware 确实强大&#xff0c;不过相比较起来我更喜欢功能比较简单轻省的 VirtualBox。 因为虚拟机比…

DoS:数据链路层DoS用例

DoS&#xff1a;数据链路层DoS用例 DoS(Denial of Services, DoS)拒绝服务攻击使计算机或网络无法提供正常的服务&#xff0c;是黑客常用的攻击手段之一。常见的DoS攻击包括计算机网络带宽攻击和连通性攻击两种类型。常用的拒绝服务攻击手段包括&#xff1a;同步洪流、WinNuke、…

git在commit之前切换分支

应用场景&#xff1a; 这个月的需求应该是要在新的分支上进行开发的&#xff0c;开发的时候忘了直接在上个月的分支开发了&#xff0c;也改了很多&#xff0c;想把改的内容提交到新的分支上&#xff0c;就需要在不commit之前切换下分支&#xff0c;找到了一种解决办法&#xff…

信息搜集工具:Maltego

信息搜集工具&#xff1a;Maltego 获取信息的方法分为两种&#xff1a;即被动扫描和主动扫描。被动扫描主要是指在目标无法察觉的情况下进行的信息搜集。Maltego就是一款优秀的信息搜集工具。需要注意的是该工具需要连接到互联网才能使用。 1. 被动扫描的范围 那么信息搜集要…

Java 运行jar包变更配置文件与变量

文章目录 前言实现原理不同环境的配置文件变更配置变量 前言 为实现快速搭建和开发&#xff0c;项目以Springboot框架搭建&#xff0c;springboot搭建的项目可以将项目直接打成jar包并运行&#xff0c;无需自己安装配置Tomcat或者其他服务器&#xff0c;是一种方便快捷的部署方…

el-dialog有滚动条,第一次打开滚动到底部,关闭,再次打开还在底部

问题&#xff1a; el-dialog有滚动条&#xff0c;第一次打开滚动到底部&#xff0c;关闭&#xff0c;再次打开还在底部 解决&#xff1a; 使用append-to-body“true” Dialog 自身是否插入至 body 元素上。嵌套的 Dialog 必须指定该属性并赋值为 true 问题&#xff1a; 使用app…

ZoomEye-python工具使用详解

ZoomEye-python ZoomEye是网络空间搜索引擎&#xff0c;用户能够使用浏览器搜索网络设备。官网地址 ZoomEye-python是一个基于ZoomEye API开发的Python库&#xff0c;它既提供ZoomEye命令行模式&#xff08;ZoomEye command line&#xff09;也能够作为一个SDK集成到其他工具中…

el-table中表头加了文字提示用的el-popover,加了固定列,文字提示失效

问题&#xff1a; el-popover悬浮文字&#xff0c;在固定列后&#xff0c;悬浮不显示 解决&#xff1a; 使用el-tooltips组件&#xff08;加类名&#xff1a;popper-class‘tooltips’,写在style全局样式中&#xff09;