一、 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. 可能是最简单的把C++Lib包装成C#可用dll的方法

    (想直接看结果的直接翻到最后) 之前对C++接触不多,最近工作需要,第三方给了一个C++的lib库,我们需要把它封装一下在C#中调用.对方要是直接给Dll就省事了... 研究了一下,基本有三个方向: ...

  2. sitecore8.2 基于相对路径查询item

    当前项目: bar (path: /sitecore/content/home/foo/bar) 查询: query:./child/grandchild 结果: grandchild (path: ...

  3. Appium+Python3+iOS真机环境搭建

    Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用. 本次环境配置相关:macOS:10.13.4Appium-desktop:1. ...

  4. 前端好用js库

    1.pubsub-js: PubSubJS is a topic-based publish/subscribe library written in JavaScript. 评价:做发布订阅超级简单 ...

  5. dlo,学习清单

    肥文自动机 模拟纵火 替罪羊 法法塔 ntt

  6. vue图片onerror加载路径写法

    vue里,img加载错误的时候,onerror属性可以加载错误图片的默认图片写法如下: <img class=avator' :src="data.picture" :one ...

  7. asp.net处理机制管道事件

    自定义的托管模块HTTP模块可以向System.Web.HttpApplication对象注册下面一系列事件: AcquireRequestState 当ASP.NET运行时准备好接收当前HTTP请求 ...

  8. java0426 wen IO2

  9. SOAR SQL进行优化和改写的自动化工具

    前言 SQL优化是程序开发中经常遇到的问题,尤其是在程序规模不断扩大的时候.SQL的好坏不仅制约着程序的规模,影响着用户的体验,甚至威胁着信息的安全. 我们经常听到说哪家平台挂了,哪家网站被黑了,但我 ...

  10. CentOS 7 yum install cobbler2.8.3

    安装前注意事项: 1.cobbler主机要为静态ip,否则和dhcpd服务冲突. 2.如果用虚拟机安装,client的内存请设置为2g以上,否则会报错. 3.kickstart文件中不要出现中文,大坑 ...