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即可,构造数据填充节点,没有什么难点,这次是做完手上的工作然 ...
随机推荐
- linux下chromedriver的安装
很多时候,发现phantomjs被一些网站屏蔽导致我们无法达到想要的结果,一方面phantomjs也停止维护,这时候们可以使用chromedriver(谷歌)或者firefoxdriver(火狐)来代 ...
- px和em的区别, css权重
PX特点:px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的. EM特点 1. em的值并不是固定的:2. em会继承父级元素的字体大小. 优先级:!important> ...
- linux 查看CPU、内存、磁盘信息命令
[1]查看CPU信息 (1)查看CPU信息(型号) cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c (2)查看物理CPU个数 cat /pr ...
- Jmeter之Redis读写
Jmeter之Redis读写 奔跑的小小鱼 关注 0.2 2019.03.21 18:25* 字数 1330 阅读 45评论 0喜欢 1 Jmeter插件访问Redis共有3种方式: 1)通过自已 ...
- flask实战-个人博客-虚拟环境、项目结构
个人博客 博客是典型的CMS(Content Management system,内容管理系统),通常由两部分组成:一部分是博客前台,用来展示开放给所有用户的博客内容:另一部分是博客后台,这部分内容仅 ...
- centos7多网卡配置bond0 (mode6无需交换机做配置)
1.执行setup命令-->网络配置-->本例中四块网卡. 2.ifconfig列出四块网卡. 3.我们的目标,绑定eth0和eth1两块网卡作为公网网卡,ip设置为192.168.0.5 ...
- vue 脚手架关于路由的一点理解
https://router.vuejs.org/zh/ 可以先翻翻文档看看介绍啊,一般我不怎么喜欢看文档,都是直接看人家案例,在回头看文档的,所以学习速度慢很多,希望我以后成为一个爱学习的妹子,比较 ...
- 系统管理--配置Gitlab
很多教程都有配这个,但这个又不能用于”源码管理”模块拉取代码,我一直很困惑这个配置有什么用,然后就找到了该插件的github项目地址才弄明白,链接:https://github.com/jenkins ...
- CAS部署在Windows上
我这里有下载好的cas.war和tomcat7,然后我在将cas.war放在tomcat目录下的webapps下,启动tomcat自动解压war包.浏览器输入http://localhost:8080 ...
- GMap获取可视范围内四个角的坐标
原理: 先获取控件的四个顶点,逐一将其转换成经纬度坐标. private void GetBonds() { //左上↖ PointLatLng pLeftTop = map1.FromLocalTo ...