当前位置:首页 > VUE

Vue echarts实现散点图

2026-03-29 20:46:40VUE

安装依赖

确保项目中已安装Vue和ECharts。通过npm或yarn安装ECharts:

npm install echarts --save

引入ECharts

在Vue组件中引入ECharts核心模块:

import * as echarts from 'echarts';

准备DOM容器

在模板中定义一个具有明确宽高的DOM元素作为图表容器:

<template>
  <div ref="chartContainer" style="width: 600px; height: 400px;"></div>
</template>

初始化图表

mounted生命周期钩子中初始化图表,并绑定到DOM容器:

mounted() {
  this.initChart();
},
methods: {
  initChart() {
    const chartDom = this.$refs.chartContainer;
    const myChart = echarts.init(chartDom);
  }
}

配置散点图选项

设置散点图的基本配置项,包括数据集、坐标轴、系列类型等:

const option = {
  xAxis: {
    type: 'value',
    scale: true
  },
  yAxis: {
    type: 'value',
    scale: true
  },
  series: [{
    type: 'scatter',
    data: [
      [10, 20],
      [15, 30],
      [20, 25],
      [30, 40]
    ],
    symbolSize: 10
  }]
};

渲染图表

将配置项应用到图表实例并渲染:

Vue echarts实现散点图

myChart.setOption(option);

响应式调整

监听窗口变化事件,实现图表自适应:

window.addEventListener('resize', () => {
  myChart.resize();
});

销毁实例

在组件销毁时移除监听并释放图表资源:

beforeDestroy() {
  window.removeEventListener('resize', this.resizeHandler);
  if (this.myChart) {
    this.myChart.dispose();
  }
}

完整组件示例

整合上述代码的完整Vue组件示例:

Vue echarts实现散点图

<template>
  <div ref="chartContainer" style="width: 600px; height: 400px;"></div>
</template>

<script>
import * as echarts from 'echarts';

export default {
  data() {
    return {
      myChart: null
    };
  },
  mounted() {
    this.initChart();
    this.resizeHandler = () => this.myChart?.resize();
    window.addEventListener('resize', this.resizeHandler);
  },
  methods: {
    initChart() {
      const chartDom = this.$refs.chartContainer;
      this.myChart = echarts.init(chartDom);

      const option = {
        xAxis: { type: 'value', scale: true },
        yAxis: { type: 'value', scale: true },
        series: [{
          type: 'scatter',
          data: [[10,20], [15,30], [20,25], [30,40]],
          symbolSize: 10
        }]
      };

      this.myChart.setOption(option);
    }
  },
  beforeDestroy() {
    window.removeEventListener('resize', this.resizeHandler);
    this.myChart?.dispose();
  }
};
</script>

进阶配置

可通过以下方式增强散点图功能:

  • 添加提示框组件:

    tooltip: {
    trigger: 'item',
    formatter: params => {
      return `X: ${params.value[0]}<br/>Y: ${params.value[1]}`;
    }
    }
  • 设置视觉映射:

    visualMap: {
    dimension: 1,
    min: 10,
    max: 50,
    inRange: {
      color: ['#50a3ba', '#eac736', '#d94e5d']
    }
    }
  • 添加动画效果:

    series: [{
    animationDuration: 2000,
    animationEasing: 'elasticOut'
    }]

标签: Vueecharts
分享给朋友:

相关文章

Vue实现lagger页面

Vue实现lagger页面

Vue实现懒加载页面的方法 懒加载(Lazy Loading)是一种优化技术,用于延迟加载非关键资源,从而提升页面初始加载速度。在Vue中可以通过以下方式实现懒加载: 路由懒加载 使用Vue Rou…

Vue实现鼠标悬浮

Vue实现鼠标悬浮

鼠标悬浮效果实现方法 在Vue中实现鼠标悬浮效果可以通过多种方式完成,以下是几种常见方法: 使用v-on指令绑定事件 通过@mouseenter和@mouseleave事件可以实现悬浮效果…

Vue实现滚动字幕

Vue实现滚动字幕

Vue实现滚动字幕的方法 使用CSS动画实现 通过CSS的@keyframes和transform属性实现水平滚动效果,结合Vue的动态绑定控制内容。 <template> <…

Vue实现点击div实现图片切换

Vue实现点击div实现图片切换

实现思路 通过Vue的数据绑定和事件监听,动态修改当前显示的图片路径或索引,实现点击div切换图片的效果。核心是利用v-on监听点击事件,并结合v-bind动态绑定图片的src属性。 基础实…

Vue实现图片随机滑动

Vue实现图片随机滑动

Vue实现图片随机滑动效果 使用CSS动画和Vue数据绑定 通过Vue管理图片数据数组,结合CSS的transform和transition实现滑动动画效果。在data中定义图片列表和随机位置,通过方…

Vue怎么实现权限验证

Vue怎么实现权限验证

Vue权限验证实现方法 路由守卫验证 在router.js中配置全局前置守卫,通过meta字段标记路由权限要求。检查用户权限是否匹配,未匹配则跳转到登录页或403页面。 router.beforeE…