viser 组合图表的同一数据多条toolp的解决办法

viser 图表可以是通过<v-chart>标签嵌套了多个图表标签生成组合图表来达到UI的设计效果,

例如:曲线图表+曲线面积图表组合成带线条的曲线面积图表,代码如下:

<v-chart :force-fit="true" :height="height" :data="data" :scale="scale" :padding="[36, 0, 18, 0]">
        <v-tooltip :shared="false"/>
        <v-smooth-line position="x*y" :size="1" />
        <v-smooth-area position="x*y" :color="[[ 'l(270) 0:#9CC8FB 1:#0076FE']]"/>
      </v-chart>

当被嵌套的这2个图表中的color属性不一致时(包括一个有设置color属性,另一个没有),tooltip工具显示的就会有2条相同的数据分别对应曲线图表与曲线面积图表,

 

 

这时可以有2个解决方案:

1、在<tooltip>标签中设置:shared="false" 属性【只展示一条tooltip】

2、2个图表设置一样的color属性,但这个方法可能达不到UI设计的

 

 

 

总结:其实viser图表其实就是通过<v-chart>标签来配置各个图表、tooltip、x/y轴、数据的展示圆点等来生成需要的图表的,另外如果只有一组数据的话【一个图例数据】,就算你嵌套了<v-legend/> 标签也是不显示图例的

<v-chart :force-fit="true" :height="height" :data="data" :scale="scale" :onClick="handleClick">
      <v-tooltip/> <!-- tooltip工具 -->
      <v-axis/> <!-- xy轴 -->
      <v-legend/> <!-- 图例 -->
      <v-line position="type*y" color="x"/> <!-- 线性图表 -->
      <v-point position="type*y" color="x" :size="4" :v-style="style" :shape="'circle'"/> <!-- 数据的展示圆点 -->
    </v-chart>

 

posted @ 2021-06-03 17:55  逸凨  阅读(1027)  评论(0编辑  收藏  举报