当前位置:首页 > 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 方法:

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

注意事项

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

vue实现多个图表展示

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

相关文章

vue实现多个树状图

vue实现多个树状图

Vue实现多个树状图的方法 在Vue中实现多个树状图可以通过组件化方式完成,通常使用递归组件或第三方库(如Element UI的Tree组件)。以下是具体实现方法: 使用递归组件实现基础树状结构…

vue实现多行多个表单

vue实现多行多个表单

Vue 实现多行多个表单 在 Vue 中实现多行多个表单,通常需要动态生成表单字段,并确保数据绑定和提交逻辑正确。以下是实现方法: 动态表单数据绑定 使用 v-for 动态渲染多行表单,并通过 v-…

vue实现多个圆环

vue实现多个圆环

Vue 实现多个圆环的方法 使用 SVG 绘制圆环 SVG 是绘制圆环的理想选择,可以通过 circle 和 path 元素实现圆环效果。以下是一个简单的 Vue 组件示例: <templat…