最近在做一个新项目,其中运用了大量的图表,主要有折线图、柱状图、饼图、雷达图四种;在考虑可扩展性的情况下,优先选择了
ECharts
,ECharts是百度开源的一款图表插件,本文主要是记录在项目开发是所遇到的样式及功能配置上的问题,以方便以后查阅;
折线图-双轴坐标对齐
折线图是最经常使用的图表之一,但是在样式上往往又不一样,经常需要按照设计需求定制,在本项目遇到的折线图问题主要是样式定制及双坐标轴不对齐的问题,以项目中的一个图表为例
上面的是设计图表
上面是Echart的官网基本图表
配置解析
1 | var option = { |
完成上述的配置后,发现样式基本一致,但是左右两个纵坐标刻度错乱,像这样
查阅官方文档发现,刻度值的个数及间隔需要通过四个参数配置,即:max
、min
、splitNumber
、interval
;
max
:坐标值刻度最大值,数据类型可以是number, string, function,默认值为nullmin
:坐标值刻度最小值,数据类型可以是number, string, function,默认值为nullsplitNumber
:坐标轴的分割段数,数据类型是number,默认值为5interval
:坐标轴刻度标签的显示间隔
写一个通用方法computeInterval
1 | /** |
修改下上述配置
1 | //根据纵坐标值计算分隔线 |
最终完成效果
柱状图-数据堆叠
柱状图主要是数据堆叠及相关
tooltip
提示处理
上面是设计图样式,如果按照一般情况去配置图表:
1 | var option = { |
上面是普通柱状图配置信息,出来的图表你会发现和设计图有点差别,我们希望图表及提示框上升和下降只显示一个,此时就要用到数据堆叠了
stack
:数据堆叠,同个类目轴上系列配置相同的stack值可以堆叠放置。[ default: null ]
改下配置即可
1 | var option = { |
饼图-富文本标签
上图为设计图中饼图样式,和普通的拼图差别不大,唯一的难点可能就是图例文字部分的样式了,图例文字部分分a,b两处,简单的方法是直接设置a的宽度即可,像这样:
1 |
|
但是会发现标签会被直接输出,此方法不通后,本想自己另外模拟图例,但是在查询官网后,发现ECharts
提供了富文本标签,可以对图中的文本块进行单独的样式设置,具体配置可查阅官网,我们利用富文本修改配置如下:
1 | ... |
通过以上修改后,发现达到了我们所需要的效果;