Echarts双Y轴时,相同的Y轴name只展示一条轴线,怎么解决

341 阅读1分钟
  • 需求:
    有个需求是,vue2项目里做echarts双Y轴折线图,tooltip要自定义样式,hover的点点也定义样式。
  • 结果:
    在双Y轴时,数据展示是根据yXias的name判断拿取的,所以会导致只显示一条Y轴数据。
  • 原因:
    legent的name,取自Y轴的name或者series的name,所以legent会相同,echarts就不会解析了
  • 解决方案:
    让Y轴的name或者series的name任意一个不相同,本案例是不需要展示series的name,所以对它进行处理。如下:

1.import:

import VChart from "vue-echarts"
import {use} from "echarts/core"
import {lineChart} from "echarts/charts"
import {
    TooltipComponent,
    LegentComponent,
    GridComponent,
} from "echarts/components"
import {CanvasRenderer} from "echarts/reenderers"
// export  default 外面直接用use
use([
lineChart,
TooltipComponent,
LegentComponent,
GridComponent,
CanvasRenderer,
])

2. 基座

components: {VChart}

3. 实现原理

form表单内取到2条Y轴信息,整理为request数据格式,传到GridStack组件,在组件内存储该折线图模块的info信息,每次加载折线图组件,则根据info信息重新拉取折线图数据信息,并setData一下

注意

双Y轴会出现yXias的name是相同的,legent的name要==Y轴的name或者series的name,所以也会相同;这时就会有问题,Echarts不会解析了,只会出现一条Y轴,因为legent的name相同。
解决:当双Y轴name相同,都是“完成率”,series的name并不需要显示,所以可以处理为唯一name,比如newName=“完成率&&”,Y轴的name要显示所以还是用infoName“完成率”。然后legent的name不直接设置,用reder函数,函数自带的默认参数就是series的name,处理后return就行。