echarts系列-----2 (多个Y轴)

本篇讲解的echarts 多个Y轴的实现方法,具体见代码,并标注注释(例子 文档事例都是有的,传送门?

  • yAxisIndex 代表第一个Y轴 (0,1,2…)
    • this.myChart.setOption(options, true); 重新渲染canvas传送门?

在这里插入图片描述

<template>
  <div>
    <div id="main" style="width:1200px;height:600px;"></div>
  </div>
</template>

<script>
import echarts from "echarts";
export default {
  name: "echartsmorey",
  data() {
    return {
      list: [
        {
          x: 1,
          y: 1,
          z: 99,
          k: 11
        },
        {
          x: 2,
          y: 2,
          z: 70,
          k: 11
        },
        {
          x: 3,
          y: 3,
          z: 1,
          k: 11
        },
        {
          x: 4,
          y: 4,
          z: 30,
          k: 11
        },
        {
          x: 5,
          y: 1,
          z: 20,
          k: 11
        },
        {
          x: 6,
          y: 0,
          z: 18,
          k: 11
        },
        {
          x: 7,
          y: 10,
          z: 12,
          k: 11
        }
      ],
      dataX: [],
      dataY: [],
      dataY2: []
    };
  },
  methods: {
    init(dataX, dataY) {
      this.myChart = echarts.init(document.getElementById("main"));
      let option = {
        legend: {
          icon: "stack",
          data: ["AA", "BB", "CC"]
        },
        tooltip: {
          trigger: "axis",
          axisPointer: {
            animation: true
          }
        },
        // 工具栏
        toolbox: {
          x: 1100,
          y: 0,
          feature: {
            saveAsImage: {
              name: `test`
            }
          }
        },
        grid: {
          left: "5%", //组件距离容器左边的距离
          right: "20%",
          top: "15%"
        },
        // X轴 滑块 可缩放
        dataZoom: [
          {
            type: "slider",
            show: true,
            start: 0, // 开始百分数
            end: 100 // 结束百分数
          }
        ],
        xAxis: {
          type: "category",
          splitLine: {
            // X 轴分隔线样式
            show: true,
            lineStyle: {
              color: ["#f3f0f0"],
              width: 2,
              type: "solid"
            }
          },
          data: dataX
        },
        yAxis: [
          {
            name: "Y轴单位写的位置",
            type: "value",
            // max: 100,
            // min: 0,
            position: "left",
            splitNumber: 10, // Y 轴分隔格数
            splitLine: {
              // Y 轴分隔线样式
              show: true,
              lineStyle: {
                color: ["#f3f0f0"],
                width: 2,
                type: "solid"
              }
            }
          },
          {
            name: "Y2轴单位写的位置",
            type: "value",
            position: "right",
            splitNumber: 10, // Y 轴分隔格数
            splitLine: {
              // Y 轴分隔线样式
              show: true,
              lineStyle: {
                color: ["#f3f0f0"],
                width: 2,
                type: "solid"
              }
            }
          },
          {
            name: "Y3轴单位写的位置",
            type: "value",
            offset: 70,
            nameGap: 30, // 上下距离的位置
            position: "right",
            splitNumber: 10, // Y 轴分隔格数
            splitLine: {
              // Y 轴分隔线样式
              show: true,
              lineStyle: {
                color: ["#f3f0f0"],
                width: 2,
                type: "solid"
              }
            }
          }
        ],
        series: dataY
      };

      // 使用刚指定的配置项和数据显示图表。
      this.myChart.setOption(option);
    }
  },
  mounted() {
    this.$nextTick(() => {
      this.dataX = this.list.map(item => item.x);
      // 第1个Y轴
      this.dataY.push({
        name: "AA",
        type: "line", // 直线
        yAxisIndex: 0, // 第几个Y轴 索引值
        data: this.list.map(item => item.y)
      });
      // 第2个Y轴
      this.dataY.push({
        name: "BB",
        type: "line",
        yAxisIndex: 1, // 第几个Y轴 索引值
        data: this.list.map(item => item.z)
      });
      // 第3个Y轴
      this.dataY.push({
        name: "CC",
        type: "line",
        yAxisIndex: 2, // 第几个Y轴 索引值
        data: this.list.map(item => item.k)
      });

      this.init(this.dataX, this.dataY);
    });
  }
};
</script>

<style scoped>
</style>
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts 提供了一些交互组件,包括缩放工具(toolbox)。通过在 toolbox 中配置 dataZoom 组件可以实现缩放功能。 下面是一个简单的例子,展示了如何在 y 轴上使用缩放工具放大缩小: ```javascript option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, toolbox: { feature: { dataZoom: { yAxisIndex: 'none' }, restore: {}, saveAsImage: {} } }, dataZoom: [{ type: 'inside', start: 0, end: 100 }, { start: 0, end: 100, handleIcon: 'M10.7,11.3c0,0.4,0.1,0.7,0.2,1c0.3,0.7,1,1.2,1.8,1.2c1.1,0,2-0.9,2-2c0-0.8-0.4-1.5-1.2-1.8c-0.3-0.1-0.6-0.2-1-0.2c-0.8,0-1.5,0.4-1.8,1.2c-0.1,0.3-0.2,0.6-0.2,1z m-2.7,0c0-0.4-0.1-0.7-0.2-1c-0.3-0.7-1-1.2-1.8-1.2c-1.1,0-2,0.9-2,2c0,0.8,0.4,1.5,1.2,1.8c0.3,0.1,0.6,0.2,1,0.2c0.8,0,1.5-0.4,1.8-1.2c0.1-0.3,0.2-0.6,0.2-1z m-2.7,0c0-0.4-0.1-0.7-0.2-1c-0.3-0.7-1-1.2-1.8-1.2c-1.1,0-2,0.9-2,2c0,0.8,0.4,1.5,1.2,1.8c0.3,0.1,0.6,0.2,1,0.2c0.8,0,1.5-0.4,1.8-1.2c0.1-0.3,0.2-0.6,0.2-1z', handleSize: '80%', handleStyle: { color: '#fff', shadowBlur: 3, shadowColor: 'rgba(0, 0, 0, 0.6)', shadowOffsetX: 2, shadowOffsetY: 2 } }], series: [{ data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'line' }] }; ``` 在该示例中,我们在 toolbox 中配置了 dataZoom 组件,并将 yAxisIndex 设置为 'none',这样 dataZoom 只会对 x 轴进行缩放。然后,我们在 option 中添加了一个 dataZoom 组件,通过设置 start 和 end 属性来限制缩放的范围。最后,我们将 series 的类型设置为 'line',并提供了一些示例数据。 缩放工具的使用方法还有很多,以上仅是一个简单的示例。如果你需要更详细的信息,请参阅 ECharts 文档中的 dataZoom 组件文档。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值