引入echarts图标踩坑总结

329 阅读4分钟

「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战

一、引入折线图遇到的问题

1、折线图折点标注替换成自定义图形

设置某一个类型的图表本身的属性而不是这个坐标系的属性的话,属性都在series里面设置,所以设置折线图的替换折点图形的属性则在series属性里面的itemStyle属性的symbol属性中设置图片路径,还有个属性叫symbolSize是设置标注图形的大小的

image.png

官方文档是这样写的,如果按照官方文档,在vue中是没法把图片显示出来的,比如这样写symbol:’image://‘+图片地址,在vue中必须加一个require函数才能把图片显示出来,比如这样写:

image.png

上面截图中用了require来拼接图片地址,只有这样才能把图片显示出来,不仅仅是echarts图表,任何想要动态改变项目中静态图片地址的地方,比如动态改变背景图片的地址,但是如果后面跟着的是网络图片地址则不需要用require拼接

截图中还有个属性是symbolSize,它是控制替换的标图图形的大小的,第一个参数是标注图形的宽度,第二个参数是标注图形的长度

如果要在不同的折点设置不同的标注图形,则需要调用一个回调函数,通过里面的params值来判断在哪个位置设置哪个标注图形,所以需要这样处理

image.png

2、折线图折线渐变色设置

折线图渐变色设置的属性是在series属性里面的lineStyle属性里面设置,这个属性专门管理折线图折线的属性,比如type属性是设置折线图折线的类型,比如实线、虚线。。。。,width属性设置折线的宽度,shadow系列设置折线的阴影属性,opacity设置折线的透明值,而color属性则是设置折线颜色的属性,单一设置直接在属性后面设置颜色代码就可以了,但是渐变色设置则要这样处理

image.png

3、折线图折点设置从0刻度开始

设置折线图是否从0刻度开始这个属性是属于设置x轴部分的属性了,所以这个设置必须在xAxios里面设置,其他属性包括:x轴的数据、x轴线的颜色、以及x轴显示刻度的字体大小,颜色。。。,所以设置是否从0刻度开始的属性需要这样设置boundaryGap设置为false就行了

image.png

二、引入柱状图遇到的问题

1、柱状图颜色渐变和透明度渐变

柱状图颜色渐变和折线图颜色渐变一样,都是在series属性中itemStyle属性的color中设置,但是这个itemStyle属性还可以设置,柱状图边框的颜色、宽度、类型以及圆角和阴影等属性,但是这次需求遇到的问题是给柱状图设置透明度渐变,如果是整个柱状图的透明度,用opacity就可以设置,但是不会渐变啊,颜色倒是可以渐变但是没有透明度。。。。所以最后想到一个方法试一试,颜色的属性代码可以用英文单词和#加上十六进制的字符,还有一个是rgb和rgba,前者和后者的区别是前者没有带最后一个参数透明度,所以试了一下这个方法可行,实例如下:

设置这个属性要先new一个引入的echarts实例才能设置成功,rgba前面的四个参数的颜色也可替换的,替换之后就成了颜色和透明度双重渐变

2、柱状图每个柱状图设置不同的颜色并且设置渐变

定义柱状图柱形颜色的属性在itemStyle属性里面的color属性,要设置每个柱状图不同的颜色,就要用到一个回调函数,通过回调函数每次渲染柱形的时候一次取出颜色代码,比如:

image.png

这样就给每个柱状图设置了不同的颜色,但是要设置每个柱状图都会渐变的话,需要这样设置

image.png

就是把之前的colorList数组中的颜色代码换成渐变色的代码就行了

3、如何设置双柱状图

在第一个设置柱状图透明度渐变的截图中,有series属性,它是一个数组,所以要在一个坐标系中设置双柱状图或者多柱状图,则可以在series属性中再写一个对象,如图中相似的对象,只要改变对象中的type属性就可以设置折线图或者其他图标共存的情况啦