Echart使用笔记
          tooltip: {
            formatter: function (params) {
              //公式计算显示次数×权重
              let result = params[0].name + "<br>";
              params.forEach(function (item, i) {
                const seriesIndex = params[i].seriesIndex;
                const score = data[seriesIndex].score;
                if (parseInt(params[i].data) == 0) {
                  result += params[i].marker + params[i].seriesName + ": " + params[i].data + "<br>";
                } else {
                  result += params[i].marker + params[i].seriesName + ": " + params[i].data + " ( " + parseInt(params[i].data / score) + "次" + " × " + score + " ) " + "<br>";
                }
              })
              return result;
            }
          },
七、 grid.containLabel
Y轴文字过长显示不全是使用
el: http://echarts.baidu.com/option.html#grid.containLabel
containLabel 为
true的时候:这常用于『防止标签溢出』的场景,标签溢出指的是,标签长度动态变化时,可能会溢出容器或者覆盖其他组件。
          grid: {
            left: 20
            right: 20,
            bottom: '0',
            top: '0',
            containLabel: true
          },
***还有一种情况,初始化时显示的是文字长度,但是删除最长的文字那行,页面重新渲染后,Y轴的长度发生改变,文字还是显示不全***
1、找出最长的文字,根据设置的字体计算出文字长度
//尝试计算Y轴删除按钮的落点
let yAxisTextMaxoffsetX = 0;
try {
let yAxisTextMaxLength = 0;
let yAxisTextMaxContent = "";
yAxis.forEach(function (item) {
let len = 0;
for (var i = 0; i < item.length; i++) {
if (item.charCodeAt(i) > 255) {
//汉字两个字符
len += 2;
} else {
len++;
}
} if (len > yAxisTextMaxLength) {
yAxisTextMaxContent = item;
}
yAxisTextMaxLength = Math.max(len, yAxisTextMaxLength);
})
yAxisTextMaxoffsetX = yAxisTextMaxLength * 6 //12px/2
console.log("最长的内容为:" + yAxisTextMaxContent + ",字符长度为:" + yAxisTextMaxLength + ",计算出的长度为:" + yAxisTextMaxoffsetX);
} catch (error) {
console.log(error);
}
2、设置grid.left为最长文字长度
       grid: {
            left: yAxisTextMaxoffsetX == 0 ? 20 : yAxisTextMaxoffsetX + 8,//yAxis.axisLabel.margin 默认为8
            right: 20,
            bottom: '0',
            top: '0',
            containLabel: yAxisTextMaxoffsetX == 0 ? true : false,
          },
八、 yAxis.triggerEvent 与 yAxis.formatter yAxis.rich
Y轴增加图标,实现删除功能
el:
1、增加图标:使用formatter编辑返回值,搭配rich的backgroundColor增加删除图标。
http://echarts.baidu.com/option.html#yAxis.axisLabel.rich
         yAxis: {
            type: 'category',
            axisLabel: {
              interval: 0,
              formatter: function (value, index) {
                return value + '{space|}' + '{del|}';
              },
              // rich 里是文本片段的样式设置:
              rich: {
                del: {
                  width: 20,
                  height: 20,
                  align: 'center',
                  backgroundColor: {
                    image: '/static/hide.svg',
                  },
                },
                space: {
                  width: 3
                }
              }
            },
            data: yAxis,
            triggerEvent: true,//是否触发事件,param.componentType == "yAxis"
          },
2、删除功能:由于param返回的值少,只能根据鼠标落点,计算是否点击了图标。根据获取的value找出index,将数据删除
        myChart.on('click', function (param) {
          if (param && param.componentType == "yAxis") {
            console.log("单击了" + param.value + "的Y轴标签" + ",位置在" + param.event.offsetX);
            if (yAxisTextMaxoffsetX != 0 && param.event.offsetX < yAxisTextMaxoffsetX) {// yAxisTextMaxoffsetX值的计算在上边第七里
              return false;
            }
            let activeIndex = 0;
            yAxis.forEach(function (item, index) {
              if (item === param.value) {
                activeIndex = index;
                return;
              }
            });
            yAxis.splice(activeIndex, 1);
            data.forEach(function (item) {
              item.data.splice(activeIndex, 1);
            });
            //TO 重绘echarts
          } else {
            console.log("单击了" + param.name + "柱状图");
            if (typeof callback === "function") {
              callback();
            }
          }
        });
Echart使用笔记的更多相关文章
- eChart学习笔记
		
eChart的html代码很简单,给个容器,定好宽高就可以了 1 <div class="container-fluid"> 2 <div class=" ...
 - EChart.js 笔记二
		
交互组件 Echart.js 中交互组件比较多.例如: legend(图例).title(标题组件).visualMap(视觉映射组件).dataZoom(数据缩放组件).timeline(时间线组件 ...
 - EChart.js 笔记一
		
一直对数据可视化比较感兴趣,当年 Alibaba 年报晚会上的大屏显示可谓是技惊四座,够震撼,将数据之美展现得淋漓尽致. 国内的前端数据可视化插件中,echart.js 算是热度很高的,也容易上手,算 ...
 - 前端笔记之JavaScript面向对象(三)初识ES6&underscore.js&EChart.js&设计模式&贪吃蛇开发
		
一.ES6语法 ES6中对数组新增了几个函数:map().filter().reduce() ES5新增的forEach(). 都是一些语法糖. 1.1 forEach()遍历数组 forEach() ...
 - EChart报表插件使用笔记(1)
		
报表插件Echart java类 package com.spring.controller; import java.io.IOException; import java.util.Arrays; ...
 - echart报表插件使用笔记(二)--按月统计
		
按月统计注冊人数 java类: package com.spring.controller; import java.io.IOException; import java.sql.Connectio ...
 - 【echart】学习笔记
		
1. x 轴 y轴 的max min 只能为5的倍数 2.
 - EChart系列:在echart3中使用百度地图扩展之后,如何获取到百度地图对象
		
最近做项目想要在百度地图上叠加显示echart的散点图,然后根据地图的缩放等级和区域范围要显示不同的散点图,这中间折腾了好久.功能要求包括: (1)底图使用百度地图: (2)可以在地图上叠加显示ech ...
 - highcharts 系统梳理笔记
		
前言 highcharts最早接触它是在4年前,后来项目中很少用到图表这些东西,就算有也是用echart.他们思路都一样自己去官网上看api即可,构造数据填充节点,没有什么难点,这次是做完手上的工作然 ...
 
随机推荐
- 可能是最简单的把C++Lib包装成C#可用dll的方法
			
(想直接看结果的直接翻到最后) 之前对C++接触不多,最近工作需要,第三方给了一个C++的lib库,我们需要把它封装一下在C#中调用.对方要是直接给Dll就省事了... 研究了一下,基本有三个方向: ...
 - sitecore8.2  基于相对路径查询item
			
当前项目: bar (path: /sitecore/content/home/foo/bar) 查询: query:./child/grandchild 结果: grandchild (path: ...
 - Appium+Python3+iOS真机环境搭建
			
Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用. 本次环境配置相关:macOS:10.13.4Appium-desktop:1. ...
 - 前端好用js库
			
1.pubsub-js: PubSubJS is a topic-based publish/subscribe library written in JavaScript. 评价:做发布订阅超级简单 ...
 - dlo,学习清单
			
肥文自动机 模拟纵火 替罪羊 法法塔 ntt
 - vue图片onerror加载路径写法
			
vue里,img加载错误的时候,onerror属性可以加载错误图片的默认图片写法如下: <img class=avator' :src="data.picture" :one ...
 - asp.net处理机制管道事件
			
自定义的托管模块HTTP模块可以向System.Web.HttpApplication对象注册下面一系列事件: AcquireRequestState 当ASP.NET运行时准备好接收当前HTTP请求 ...
 - java0426 wen IO2
 - SOAR SQL进行优化和改写的自动化工具
			
前言 SQL优化是程序开发中经常遇到的问题,尤其是在程序规模不断扩大的时候.SQL的好坏不仅制约着程序的规模,影响着用户的体验,甚至威胁着信息的安全. 我们经常听到说哪家平台挂了,哪家网站被黑了,但我 ...
 - CentOS 7 yum install cobbler2.8.3
			
安装前注意事项: 1.cobbler主机要为静态ip,否则和dhcpd服务冲突. 2.如果用虚拟机安装,client的内存请设置为2g以上,否则会报错. 3.kickstart文件中不要出现中文,大坑 ...