1、不要输出 window["echarts"].init(chart) ,会卡死。

let chart = document.getElementById("chart_id");//chartid为自定义charts的id
if (chart != null) {
  let myChart = window["echarts"].init(chart);
  //console.log("myChart = ", myChart)//千万别输出,会卡死
}

2、angularjs中绑定echarts,建议使用ng-repeat绑定数组,否则动态切换echarts会没有效果。

<div id="chart_my" style="min-height: 300px;" class="sam-Echarts" ng-if="vm.charts!=null" ng-repeat="option in vm.charts" sam-Echarts="option">
</div>
// 为echarts自定义的directives -- samEcharts
export default class directive implements ng.IDirective {
static $instance = (): ng.IDirective => {
return new directive();
};
constructor() {
}
scope = {
samEcharts: "=",
samMychart: "="
};
restrict = 'AE';
replace = true;
link(scope: ng.IScope, element: ng.IRootElementService, attrs: any, ctrl: any) {
if (scope.samEcharts) {
var myChart = window["echarts"].init(element[0]);
myChart.setOption(scope.samEcharts);
window.addEventListener("resize", x => {
myChart.resize();
});
scope.$on("onShrinkNav", x => {
myChart.resize();
});
if (scope.samMychart) {
scope.samMychart = myChart;
}
}
};
}
class Controller {
constructor() {
}
}

3、富文本,a|表示自定义的标签,|{b}|{c}表示文本内容,貌似c为name,b为value,a为series?

label: {
normal: {
formatter: '{a|{c}}\n{b|{b}}\n{hr|}\n\n\n',
rich: {
a: {
fontSize: 18,
lineHeight: 25,
align: 'left'
},
b: {
align: 'left',
fontSize: 12,
lineHeight: 12,
color: "#999999"
},
hr: { //下划线
borderColor: 'auto',
width: '105%',
borderWidth: 1,
height: 0,
margin: [10, 0]
}
}
}
}

4、图表内部可拖动:dataZoom的type=inside则内部可拖动,为slider则外部有滚动条

// 拖动
dataZoom: [
{
type: 'inside',
// throttle: '50',
minValueSpan: 5,
maxValueSpan: 5,
start: 50,
end: 100
}
]
// 底部拖动条
dataZoom: xData.length > 6 ? [{
type: 'slider',
show: true,
xAxisIndex: [0],
bottom: 55,
left: 30,
right: 30,
backgroundColor: "#f4f4f4", //组件的背景颜色
fillerColor: "#CEF0FE", //选中范围的填充颜色。
dataBackground: {
lineStyle: {
show: false,
opacity: 0
},
areaStyle: {
show: false,
opacity: 0
}
},
textStyle: {
color: "transparent"
},
borderColor: "#fff",
handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z',
handleSize: '300%',
// handleSize: 0,
handleStyle: { color: "#CEF0FE" },
height: "8px",
// start: ydata.length < 10 ? 0 : Math.floor((ydata.length - 10) * 100 / ydata.length),
start: (xData.length - 6) * 100 / xData.length,
end: 100 //初始化滚动条
}] : false,
// 另外附加一个如果自定义了左右切换控件,可以自定义拖动位置
let chart = document.getElementById("chart_id");//chartid为自定义charts的id
if (chart != null) {
let myChart = window["echarts"].init(chart);
// //获得图表数据数组下标
// let startValue = myChart.getModel().option.dataZoom[0].startValue;
// let endValue = myChart.getModel().option.dataZoom[0].endValue;
// //获得起止位置百分比
// var startPercent = myChart.getModel().option.dataZoom[0].start;
let endPercent = myChart.getModel().option.dataZoom[0].end;
// console.log("myChart = ", startPercent, endPercent, startValue, endValue);
let option = this.charts[0];
if (endPercent == 100) {
option.dataZoom[0].start = 0;
option.dataZoom[0].end = 49;//定义为50的话貌似有点偏差
}
else {
option.dataZoom[0].start = 50;
option.dataZoom[0].end = 100;
}
myChart.setOption(option, true);
}

5、x轴文字显示不全的3种解决思路 https://blog.csdn.net/kebi007/article/details/68488694

6、文字换行 https://www.cnblogs.com/zjjDaily/p/8022944.html

7、自定义legendName 图形样式,基本的就看官网吧,博主用的echart版本是2.*,但调试时却不能像官网那样直接用没有圆形的横线代表折线,下图是官网实例 ↓↓↓

在series中添加属性 symbol:'none' 即可。但在官网3.0和最近新出的4.0版本却也都不行,难道是因为主题???耗了大半天时间最终只好投降使用svg文字,然后设定自己的itemWidth和itemHeight。

icon: "path://M0 13v6c0 0.552 0.448 1 1 1h30c0.552 0 1-0.448 1-1v-6c0-0.552-0.448-1-1-1h-30c-0.552 0-1 0.448-1 1z"

效果如下 ↓↓↓

8、双Y轴左右两侧对齐轴线。参考:https://www.jianshu.com/p/5123433d36f8

  思路是设定最大值max和间隔区间 interval,因为interval包含小数时会被强行自适应导致不对齐,所以要将max设定为能被分割的条数整除,当然从图表样式来说这个也应该设定的比正常最大max再稍大一些,要是按照最大max则必然有一个节点是顶到max值的,所以博主给max加了相应区间范围。

// 小编分了5段,所以设定能被5整除:

    if (_max % 5 != 0) {
_max += 5 - (_max % 5);
}
_max = this.setMax(_max); // setMax,设定比实际max再大半个度:
setMax(max) {
if (max > 5 && max < 10) {
max = 10;
}
else if (max < 100 && max >= 10) {
max += 5;
}
else if (max < 1000 && max >= 100) {
max += 50;
}
else if (max < 10000 && max >= 1000) {
max += 500;
}
else if (max < 100000 && max >= 10000) {
max += 5000;
}
else if (max >= 100000) {
max += 50000;
}
return max;
}

9、饼图(或环图)设置 label.formatter 在data个数较多时不推荐设置换行,否则会出界并与 legend 交叉。如下图↓↓↓

10、设置字体大小不推荐使用字符串px,应使用数字number,否则会导致图表两侧与页边距产生错误差。

textStyle: {
color: "#A0A5B0",
fontSize: 10,
fontFamily: "PingFangSC-Regular"
}

echarts 技巧自己的一些记录的更多相关文章

  1. 微信小程序开发技巧及填坑记录

    以下是自己在开发过程中遇到的坑和小技巧,记录以下: 1.出现了 page[pages/XXX/XXX] not found.May be caused by :1. Forgot to add pag ...

  2. React Native工作小技巧及填坑记录

    以下是本人在React Native开发工作中使用的一些小技巧,记录一下. 1.从网络上拉取下来的React Native缺少React和React Native库. 终端 1. cd 项目根目录 2 ...

  3. iOS工作小技巧及填坑记录

    以下是本人在iOS开发工作中使用的一些小技巧,记录一下. 1.使用XXX.pch文件便捷开发+加速Build 在IOS开发的项目中有一个XX_Prefix.pch XX_Prefix.pch:扩展名. ...

  4. mongodb一些使用技巧或注意事项记录

    1.有的时候需要删除指定字段那一列,使用update操作.例如要删除name这一列: query  json: {"name":{$exists:true}} update jso ...

  5. echarts 部分美化配置项使用记录

    一.图表背景色配置项,如背景颜色渐变 https://www.echartsjs.com/zh/option.html#backgroundColor 二.图表中图形的颜色,如柱状图行采用渐变颜色显示 ...

  6. AngularJS1.3一些技巧

    前言 框架选择.在上一篇文章评论中,有人说angular1.3是个过时的东西,建议使用angular2.其实这种说法很像拿jQuery1.x和jQuery2.x做比较,新的版本当然会有优化优势的地方, ...

  7. 备忘:SSRS技巧三则

    前言 最近在弄SSRS,发现了三个小技巧.在此记录一下.免得以后忘了. 技巧 1. SSRS输出成EXCEL时,让两个dataset各占一个sheet, 这个简单,在其中一个table的属性加上pag ...

  8. Eclipse/Myeclipse 开发项目技巧

    Eclipse/Myeclipse 开发项目 编程的本质: 把现实生活中的业务逻辑用代码实现. eclipse 是一个开放源代码.基于Java的可扩展开发平台. (最初主要用来Java语言开发,但目前 ...

  9. [css 揭秘]:CSS编码技巧

    CSS编码技巧 我的github地址:https://github.com/FannieGirl/ifannie 喜欢的给我一个星吧 尽量减少代码重复 尽量减少改动时需要编辑的地方 当某些值相互依赖时 ...

随机推荐

  1. Day 20 常用模块(三)

    一.加密模块 1.加密方式: 1.有解密的加密方式 2.无解密的加密方式,碰撞检查 1.不同数据加密后的结果一定不一致 2.相同数据的加密结果一定是一致 2.hashlib模块 1.基本使用 ciph ...

  2. rt-thread平台 动态装载实现原理

    原理分析: a.在链接脚本link.lds里定义了专门存放动态符号表的段RTMSymTab. b.内核对外提供可延时绑定的接口在rtm.h中通过RTM_EXPORT将一对对符号+地址构成的表存放到RT ...

  3. ubuntu设置 SSH 通过密钥对登录

    1. 制作密钥对 首先在服务器上制作密钥对.登录到打算使用密钥登录的账户,然后执行以下命令: [root@host ~]$ ssh-keygen <== 建立密钥对 Generating pub ...

  4. webRTC中音频相关的netEQ(四):控制命令决策

    上篇(webRTC中音频相关的netEQ(三):存取包和延时计算)讲了语音包的存取以及网络延时和抖动缓冲延时的计算,MCU也收到了DSP模块发来的反馈报告.本文讲MCU模块如何根据网络延时.抖动缓冲延 ...

  5. Indent Guides插件格式代码

    vs开发工具实用性插件 一.   在开发遇到过很多括号缩近的,很是头疼,于是上网收了一下,希望对大家有所帮助. 第一款插件:Indent Guides 这款插件是给代码块增长对齐线,以标识匹配的花括号 ...

  6. [转]C# 4.7.2 安装

    遇到提示 “无法建立到信任根颁发机构的证书链” 下载地址:https://files.cnblogs.com/files/z5337/NetFramework%E8%AF%81%E4%B9%A6.ra ...

  7. Centos 7环境下配置MySQL 5.7读写分离

    1.实验目的: 实现在Centos 7系统环境下,MySQL5.7读写分离. 2.实验条件: MySQL主服务器:Centos 7桌面环境,IP:10.10.11.31 MySQL从服务器:Cento ...

  8. java 垃圾回收总结(1)(转)

    转自: http://www.cnblogs.com/aigongsi/archive/2012/04/06/2434771.html 另外可参考: http://ifeve.com/gc-orien ...

  9. Linux下导入CA证书

    在部署路由器的时候,发现路由器不支持从https安装应用,经过调查,发现是路由器里面没导入证书 安装ca-certificates即可解决. opkg install ca-certificates

  10. C语言数据结构基础学习笔记——动态查找表

    动态查找表包括二叉排序树和二叉平衡树. 二叉排序树:也叫二叉搜索树,它或是一颗空树,或是具有以下性质的二叉树: ①若左子树不空,则左子树上所有结点的值均小于它的根结点的值: ②若右子树不空,则右子树上 ...