整理了一些工作中常用的ECharts配置。
在react中使用Echarts:echarts-for-react
5.0.0
Echarts 5.0.0更新日志:
https://github.com/apache/incubator-echarts/releases
指定渲染器
默认使用Canvas渲染:
1 | this.chart = echarts.init(container, null, {renderer: 'canvas'}) |
移动端推荐使用SVG渲染:
1 | this.chart = echarts.init(container, null, {renderer: 'svg'}) |
如果已经设置了renderer: 'svg'
,但是渲染出的仍然是canvas,检查一下是否引入了SVG渲染器模块:
1 | import echarts from 'echarts/lib/echarts' |
通用
设置渐变填充色
配置文档:https://echarts.apache.org/zh/option.html#series-line.areaStyle.color
1 | color: { |
自定义tooltip
formatter: https://echarts.apache.org/zh/option.html#tooltip.formatter
1 | tooltip: { |
使用富文本标签自定义样式
https://echarts.apache.org/zh/tutorial.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%87%E7%AD%BE
legend关闭图例选择
1 | legend: { |
设置x、y轴颜色
1 | xAxis: { |
设置x、y轴分区域的背景颜色
1 | yAxis: { |
强制x、y轴显示所有刻度标签
默认会采用标签不重叠的策略间隔显示标签。设置interval : 0
强制显示所有标签:
1 | xAxis: { |
绘制额外的元素
https://echarts.apache.org/zh/option.html#graphic
标题居中
使用left: center
而不是textAlign: center
。具体看issue:标题使用textAlign无法居中 #4550
1 | option = { |
词云
折线图
拐点
1 | series: [{ |
平滑曲线
如果是
boolean
类型,则表示是否开启平滑处理。如果是number
类型(取值范围 0 到 1),表示平滑程度,越小表示越接近折线段,反之则反。设为true
时相当于设为0.5
。
柱状图
设置最大宽度
1 | series: [ |
堆叠柱状图数据为0时label会堆叠
解决方法1:label设置formatter,为0时隐藏label:
1 | series: [{ |
解决方法2:将值设置为null隐藏该类目
注意:如果有设置tooltip,tooltip显示的值将会是-
1 | function formatNum(num) { |
1 | series: [{ |
双Y轴 折线图 + 柱状图
Demo: https://www.makeapie.com/editor.html?c=x5zMgDYwEZ
关键代码:
1 | legend: { |
注意点
- yAxis为数组,一个item对应一个y轴的配置
- series的每个item都要添加
yAxisIndex
字段,指定其使用的y轴的index
饼图
设置上下边距
饼图不能通过grid
调整上下左右距离容器的距离,需要通过series
中的center
调整:
1 | center: ['50%', '50%'] |
圆环中间文字
配置文档:https://echarts.apache.org/zh/option.html#title.text
1 | title: { |
圆环所有标签放在中心位置
1 | series: [{ |
扇形之间的间隔(描边)
1 | series: [{ |
不响应和触发鼠标事件(取消hover高亮、hover在扇区上的放大动画等)
1 | { |
渲染企业微信通讯录数据
tooltip 无法正确渲染通讯录数据,显示的是乱码
解决方法:设置renderMode: 'richText'
1 | tooltip: { |
问题汇总
Component legend.scroll not exists. Load it first.
问题:按需引入import 'echarts/lib/component/legend'
后,设置legendtype: scroll
报错
解决:将缺少的legendScroll引入即可 import 'echarts/lib/component/legendScroll'