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即可,构造数据填充节点,没有什么难点,这次是做完手上的工作然 ...
随机推荐
- Ajax请求二进制流并在页面展示
后端代码: public void getIntegralQrcode(HttpServletResponse response, String token) throws BizException, ...
- day16 python之匿名函数,递归函数
匿名函数 匿名函数格式 函数名 = lambda 参数 :返回值 #参数可以有多个,用逗号隔开 #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值 #返回值和正常的函数一样可以是任 ...
- 网络库压力测试:mongols VS evpp
evpp是360出品的一个网络库,基于libevent,进行了许多改造,对c++11友好.据称比libevent性能要好. 到底有多好呢?360开发人员有自己的测试,信不信由你. evpp源码下有个h ...
- ldd ldconfig
ldd - print shared object dependencies ldconfig 主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目 ...
- maven 项目连接mysql8.0版本时的注意事项
MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以前的maven项目,要注意依赖的注入 查看pom. ...
- 数据库session立即生效(64---8192) SCOPE参数
SCOPE=MEMORY|SPFILE|BOTH 指示了修改参数时的“作用域”: SCOPE=MEMORY :只在实例中修改,重启数据库后此次修改失效. SCOPE=SPFILE :只修改SPFILE ...
- 使用xshell从远程服务器下载文件到本地
XSHELL工具上传文件到Linux以及下载文件到本地(Windows) Xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz.首先你的L ...
- 使用session和cookie实现用户登录:一个登录页面,一个servlet,一个登录成功页面
文件目录 1.登录页面 <%@ page language="java" contentType="text/html; charset=utf-8" p ...
- JS,JQuery小知识
http://blog.163.com/wumingli456@126/blog/static/28896414201112252456459/?suggestedreading&wumii
- python numpy科学计算和数据分析的基础包
import numpy as np #创建ndarray# data1 = [6, 5, 7, 1, 3]# arrl = np.array(data1)# print(arrl)#多维列表创建nd ...