Skip to content

DataZoom 区域缩放

基本用法

vue
<script setup>
  import { ref, onMounted } from 'vue'
  import * as echarts from 'echarts';

  const data =ref([]);

  onMounted(() => {
    let data1 = [];
    let data2 = [];
    let data3 = [];
    for (var i = 0; i < 500; i++) {
        data1.push([random(15), random(10), random(1)]);
        data2.push([random(10), random(10), random(1)]);
        data3.push([random(15), random(10), random(1)]);
    }
    data.value = [data1, data2, data3]
  })

  function random(max) {
    return (Math.random() * max).toFixed(3);
  };
  function formatSymbolSize(val){
    return val[2] * 40;
  }
</script>
<template>
    <VueEcharts style="width:100%;height:300px;" :animation='false'>
    <Legend :data="['scatter', 'scatter2', 'scatter3']" />
      <Tooltip />
      <XAxis type="value" min='dataMin' max='dataMax'>
          <SplitLine show />
      </XAxis>
      <YAxis type="value" min='dataMin' max='dataMax'>
          <SplitLine show />
      </YAxis>
      <DataZoom type='slider' show :xAxisIndex='[0]' :start='1' :end='35' />
      <DataZoom type='slider' show :yAxisIndex='[0]' :start='29' :end='36' left='93%' />
      <DataZoom type='inside' show :xAxisIndex='[0]' :start='1' :end='35' />
      <DataZoom type='inside' show :yAxisIndex='[0]' :start='29' :end='36' />
      <Scatter name='scatter' :data='data[0]' :symbolSize='formatSymbolSize'>
          <ItemStyle :opacity='0.8' />
      </Scatter>
      <Scatter name='scatter' :data='data[1]' :symbolSize='formatSymbolSize'>
          <ItemStyle :opacity='0.8' />
      </Scatter>
      <Scatter name='scatter' :data='data[2]' :symbolSize='formatSymbolSize'>
          <ItemStyle :opacity='0.8' />
      </Scatter>
  </VueEcharts>
</template>