一、 registerTheme
注册主题,用于初始化实例的时候指定。
最好的办法是定制主题,然后修改里面的选项
 
使用方法
echarts.init(dom,theme)
el: echarts.init($(selector)[0], 'schoolReport');
 
二、 resize
改变图表尺寸,在容器大小发生改变时需要手动调用。
Tip: 有时候图表会放在多个标签页里,那些初始隐藏的标签在初始化图表的时候因为获取不到容器的实际高宽,可能会绘制失败,因此在切换到该标签页时需要手动调用 resize 方法获取正确的高宽并且刷新画布,或者在 opts 中显示指定图表高宽。
 
el:比如两个标签页公用一个图表,在一个标签页宽高发生变化后,调用此方法重置容器大小
$(selector)[0].style.height = yAxis.length * 50 + "px";
myChart.clear();
myChart.resize();
myChart.setOption(option);
 
 
三、 on &   off
绑定 & 解绑事件处理函数。
 
el:图表公用的时候,一定要调用off之后在绑定时间,否则事件触发越来越多
myChart.off("click");
myChart.on('click', function (param) {
    if (param) {
        callback(param.dataIndex, param.name);
    }
});
 
四、  yAxis.axisLabel.interval
坐标轴刻度标签的显示间隔,在类目轴中有效。 默认会采用标签不重叠的策略间隔显示标签。
 
el:当X\Y轴数据过长时,会隐藏一部分X\Y轴的名称,而隔几个显示, 可以设置成 0 强制显示所有标签。
yAxis: {
    type: 'category',
    axisLabel:{
        interval: 0
    },
    data: yAxis
},
 
五、 tooltip.position
提示框浮层的位置,默认不设置时位置会跟随鼠标的位置。
 
el:随着鼠标的位置移动,并在鼠标的右下15
tooltip: {
    trigger: 'axis',
    axisPointer: { // 坐标轴指示器,坐标轴触发有效
        type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
    },
    position: function (point, params, dom, rect, size) { //point: 鼠标位置
        // 固定在顶部
        return [point[0] + 15, point[1] + 15];
    }
},
 
六、 tooltip.formatter
提示框浮层内容格式器,支持字符串模板和回调函数两种形式。
 
tooltip: {
    trigger: 'axis',
    axisPointer: { // 坐标轴指示器,坐标轴触发有效
        type: 'line' // 默认为直线,可选为:'line' | 'shadow'
    },
    formatter: "{b} : {c} 次"
},
          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使用笔记的更多相关文章

  1. eChart学习笔记

    eChart的html代码很简单,给个容器,定好宽高就可以了 1 <div class="container-fluid"> 2 <div class=" ...

  2. EChart.js 笔记二

    交互组件 Echart.js 中交互组件比较多.例如: legend(图例).title(标题组件).visualMap(视觉映射组件).dataZoom(数据缩放组件).timeline(时间线组件 ...

  3. EChart.js 笔记一

    一直对数据可视化比较感兴趣,当年 Alibaba 年报晚会上的大屏显示可谓是技惊四座,够震撼,将数据之美展现得淋漓尽致. 国内的前端数据可视化插件中,echart.js 算是热度很高的,也容易上手,算 ...

  4. 前端笔记之JavaScript面向对象(三)初识ES6&underscore.js&EChart.js&设计模式&贪吃蛇开发

    一.ES6语法 ES6中对数组新增了几个函数:map().filter().reduce() ES5新增的forEach(). 都是一些语法糖. 1.1 forEach()遍历数组 forEach() ...

  5. EChart报表插件使用笔记(1)

    报表插件Echart java类 package com.spring.controller; import java.io.IOException; import java.util.Arrays; ...

  6. echart报表插件使用笔记(二)--按月统计

    按月统计注冊人数 java类: package com.spring.controller; import java.io.IOException; import java.sql.Connectio ...

  7. 【echart】学习笔记

    1.  x 轴 y轴 的max  min 只能为5的倍数 2.

  8. EChart系列:在echart3中使用百度地图扩展之后,如何获取到百度地图对象

    最近做项目想要在百度地图上叠加显示echart的散点图,然后根据地图的缩放等级和区域范围要显示不同的散点图,这中间折腾了好久.功能要求包括: (1)底图使用百度地图: (2)可以在地图上叠加显示ech ...

  9. highcharts 系统梳理笔记

    前言 highcharts最早接触它是在4年前,后来项目中很少用到图表这些东西,就算有也是用echart.他们思路都一样自己去官网上看api即可,构造数据填充节点,没有什么难点,这次是做完手上的工作然 ...

随机推荐

  1. Vim编辑器设置及其使用

    一.vim编辑器的相关配置文件 /etc/vimrc:vim编辑器的全局配置文件,针对所有用户有效 /etc/virc:vi编辑器的全局配置文件,针对所有用户有效 ~/.vimrc:vim编辑器的其他 ...

  2. python爬虫简单的添加代理进行访问

    在使用python对网页进行多次快速爬取的时候,访问次数过于频繁,服务器不会考虑User-Agent的信息,会直接把你视为爬虫,从而过滤掉,拒绝你的访问,在这种时候就需要设置代理,我们可以给proxi ...

  3. Python 冒泡排序、归并排序、快速排序

    冒泡排序 原理: 代码: def bubble_sort2(arr):for j in range(len(arr) - 1, 0, -1): # [n-1, n-2, ....2, 1]for i ...

  4. git宝典—应付日常工作使用足够的指北手册

    最近公司gitlab又迁移,一堆git的命令骚操作,然鹅git命令,感觉还是得复习下——其实,git现在界面操作工具蛮多,比如intellij 自带的git操作插件就不错,gitlab github ...

  5. 论文阅读(Weilin Huang——【arXiv2016】Accurate Text Localization in Natural Image with Cascaded Convolutional Text Network)

    Weilin Huang——[arXiv2016]Accurate Text Localization in Natural Image with Cascaded Convolutional Tex ...

  6. 【数据结构】算法 Maximum Subarray

    最大子数组:Maximum Subarray 参考来源:Maximum subarray problem Kadane算法扫描一次整个数列的所有数值,在每一个扫描点计算以该点数值为结束点的子数列的最大 ...

  7. centos7安装git

    1.安装git依赖包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUti ...

  8. wpf中插入winform控件并获取句柄

    因工作需要使用wpf做界面,而有个开发包依赖picturebox控件,上网研究了一下,总算弄通了. 首先在项目中添加引用System.Windows.Forms与WindowsFormsIntegra ...

  9. java串口通信丢包

    java串口通信丢包问题 前段时间公司要求做一个java应用和pos串口通信的工具,调试好了好久每次都是只能接收到一包数据后续的数据都丢失了. 经过修改读写的流的缓存大小亲测都正常代码如下: seri ...

  10. Python中的7种可调用对象

    Python中有七种可调用对象,可调用对象可使用内置函数callable来检测 一.用户自定义的函数: 使用def语句或者lambda表达式创建的函数. 二.内置函数: 使用C语言实现的函数,如len ...