vue项目折线图通过自定义formatter函数为tooltip提示框数据动态添加不同单位

首先引入echarts,效果如下:
在这里插入图片描述
见代码:

<template>
  <div>
    <div id="chartLineBox" style="width: 90%;height:100vh;border:1px solid red;"></div>
  </div>
</template>
<script>
var echarts = require("echarts");
export default {
  name: "lineEacharts",
  mounted() {
    this.chartLine = echarts.init(document.getElementById("chartLineBox"));
 
    // 指定图表的配置项和数据
    var option = {
      tooltip: {
        //设置tip提示
        trigger: "axis",
        // formatter: '{c}',
        formatter: function(params) {
          //自定义函数修改折线图给数据加单位
          var str = ""; //声明一个变量用来存储数据
          str += "<div>" + params[0].name + "</div>"; //显示日期的函数
          for (var i = 0; i < params.length; i++) {
            // console.log(params[1].seriesName,1111111)
            //图显示的数据较多时需要循环数据,这样才可以成功的给多条数据添加单位
            str +=
              '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:' +
              params[i].color +
              ';"></span>' +
              params[i].seriesName +
              "</span> : <span>" +
              (params[i].seriesName == "学生成绩"
                ? params[i].data + "分"
                : params[i].seriesName == "平均成绩"
                ? params[i].data + "人"
                : params[i].data + "个") +
              "</br>"; 
          }
          return str;
        }
      },
      dataZoom: [
        {
          start: 80,
          type: "inside"
        },
        {
          start: 80
        }
      ],
      legend: {
        //设置区分(哪条线属于什么)
        data: ["平均成绩", "学生成绩", "我的成绩"]
      },
      color: ["#8AE09F", "#FA6F53"], //设置区分(每条线是什么颜色,和 legend 一一对应)
      xAxis: {
        //设置x轴
        type: "category",
        boundaryGap: false, //坐标轴两边不留白
        data: [
          "2019-1-1",
          "2019-2-1",
          "2019-3-1",
          "2019-4-1",
          "2019-5-1",
          "2019-6-1",
          "2019-7-1"
        ],
        name: "DATE", //X轴 name
        nameTextStyle: {
          //坐标轴名称的文字样式
          // color: "#FA6F53",
          fontSize: 16,
          padding: [0, 0, 0, 20]
        }
      },
      yAxis: {
        name: "SALES VOLUME",
        nameTextStyle: {
          // color: "#FA6F53",
          fontSize: 16,
          padding: [0, 0, 10, 0]
        },
        type: "value"
      },
      series: [
        {
          name: "平均成绩",
          data: [220, 232, 201, 234, 290, 230, 220],
          type: "line", // 类型为折线图
          lineStyle: {
            // 线条样式 => 必须使用normal属性
            normal: {
              color: "#8AE09F"
            }
          }
        },
        {
          name: "学生成绩",
          data: [120, 200, 150, 80, 70, 110, 130],
          type: "line",
          lineStyle: {
            normal: {
              color: "#FA6F53"
            }
          }
        }
      ]
    };

    // 使用刚指定的配置项和数据显示图表。
    this.chartLine.setOption(option,true);
  }
};
</script>
<style lang="scss" scoped>
div{
  font-weight: bolder;
}
</style>
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值