当前位置:首页 > VUE

vue实现多个图表展示

2026-01-12 02:21:06VUE

使用 Vue 实现多个图表展示

安装图表库

推荐使用 EChartsChart.js,两者均支持 Vue 集成。以 ECharts 为例,安装依赖:

npm install echarts vue-echarts

引入并注册组件

在 Vue 项目中全局或局部注册图表组件。以全局注册为例:

import { createApp } from 'vue';
import ECharts from 'vue-echarts';
import { use } from 'echarts/core';
import { CanvasRenderer } from 'echarts/renderers';
import { BarChart, LineChart } from 'echarts/charts';
import { GridComponent, TooltipComponent } from 'echarts/components';

use([CanvasRenderer, BarChart, LineChart, GridComponent, TooltipComponent]);

const app = createApp(App);
app.component('v-chart', ECharts);

创建多个图表组件

在父组件中通过动态数据渲染多个图表。例如:

<template>
  <div class="chart-container">
    <v-chart class="chart" :option="lineOption" />
    <v-chart class="chart" :option="barOption" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      lineOption: {
        xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed'] },
        yAxis: { type: 'value' },
        series: [{ data: [150, 230, 224], type: 'line' }]
      },
      barOption: {
        xAxis: { type: 'category', data: ['A', 'B', 'C'] },
        yAxis: { type: 'value' },
        series: [{ data: [10, 20, 30], type: 'bar' }]
      }
    };
  }
};
</script>

<style>
.chart-container {
  display: flex;
  gap: 20px;
}
.chart {
  width: 400px;
  height: 300px;
}
</style>

动态加载数据

通过 API 或静态数据动态更新图表配置:

methods: {
  fetchData() {
    // 模拟异步数据获取
    setTimeout(() => {
      this.lineOption.series[0].data = [200, 300, 400];
    }, 1000);
  }
},
mounted() {
  this.fetchData();
}

响应式调整

监听窗口变化,调用 ECharts 的 resize 方法:

vue实现多个图表展示

window.addEventListener('resize', () => {
  this.$refs.lineChart?.resize();
  this.$refs.barChart?.resize();
});

注意事项

  • 若需更复杂的交互,可配置 tooltip 或自定义事件。
  • 销毁组件时移除事件监听,避免内存泄漏。
  • 使用 v-if 控制图表渲染时机,避免空白容器。

标签: 多个图表
分享给朋友:

相关文章

vue实现图表拖拽

vue实现图表拖拽

Vue 实现图表拖拽功能 在 Vue 中实现图表拖拽功能,可以通过结合第三方图表库(如 ECharts、Chart.js)和拖拽库(如 interact.js、draggable)来完成。以下是几种常…

vue实现多个预览图

vue实现多个预览图

Vue 实现多个预览图的方法 使用 v-for 循环渲染图片列表 通过 v-for 指令遍历图片数组,动态生成多个预览图。适用于需要展示固定或动态图片列表的场景。 <template>…

vue实现每组多个图片

vue实现每组多个图片

Vue 实现每组多个图片的展示 在 Vue 中展示每组多个图片可以通过多种方式实现,常见的方法包括使用 v-for 循环渲染图片组、结合 CSS 布局或第三方组件库。 使用 v-for 循环渲染图片…

react如何实现打开多个标签页

react如何实现打开多个标签页

在React中实现打开多个标签页可以通过多种方式实现,以下是一些常见的方法: 使用window.open方法 通过JavaScript的window.open方法可以在新标签页中打开链接。在Reac…

php实现多个网站同步

php实现多个网站同步

PHP实现多个网站同步的方法 使用PHP实现多个网站的数据同步可以通过多种方式实现,以下是几种常见的方法: 数据库同步 通过共享数据库或数据库复制技术实现数据同步。多个网站连接到同一个数据库,或使用…

js 实现图表

js 实现图表

JavaScript 实现图表的方法 JavaScript 提供了多种库和原生方法来实现图表功能,以下是一些常见的实现方式。 使用原生 Canvas API 通过 HTML5 的 <canva…