当前位置:首页 > VUE

vue实现折线图

2026-01-20 19:41:51VUE

使用 ECharts 实现折线图

安装 ECharts 依赖

npm install echarts --save

在 Vue 组件中引入 ECharts

import * as echarts from 'echarts'

创建图表容器

<template>
  <div id="lineChart" style="width: 600px; height: 400px;"></div>
</template>

初始化图表

vue实现折线图

mounted() {
  this.initLineChart()
},
methods: {
  initLineChart() {
    const chartDom = document.getElementById('lineChart')
    const myChart = echarts.init(chartDom)

    const option = {
      title: {
        text: '折线图示例'
      },
      tooltip: {
        trigger: 'axis'
      },
      legend: {
        data: ['销量']
      },
      xAxis: {
        type: 'category',
        data: ['1月', '2月', '3月', '4月', '5月', '6月']
      },
      yAxis: {
        type: 'value'
      },
      series: [
        {
          name: '销量',
          type: 'line',
          data: [150, 230, 224, 218, 135, 147]
        }
      ]
    }

    myChart.setOption(option)
  }
}

使用 Vue-ECharts 封装组件

安装 vue-echarts

npm install vue-echarts echarts --save

创建可复用组件

vue实现折线图

<template>
  <v-chart :option="chartOption" autoresize />
</template>

<script>
import { use } from 'echarts/core'
import { CanvasRenderer } from 'echarts/renderers'
import { LineChart } from 'echarts/charts'
import {
  TitleComponent,
  TooltipComponent,
  LegendComponent,
  GridComponent
} from 'echarts/components'
import VChart from 'vue-echarts'

use([
  CanvasRenderer,
  LineChart,
  TitleComponent,
  TooltipComponent,
  LegendComponent,
  GridComponent
])

export default {
  components: { VChart },
  data() {
    return {
      chartOption: {
        // 同上示例的option配置
      }
    }
  }
}
</script>

响应式数据更新

动态更新图表数据

watch: {
  chartData(newVal) {
    if (this.myChart) {
      this.myChart.setOption({
        series: [{
          data: newVal
        }]
      })
    }
  }
}

图表自适应

添加窗口大小变化监听

mounted() {
  window.addEventListener('resize', this.handleResize)
},
beforeDestroy() {
  window.removeEventListener('resize', this.handleResize)
},
methods: {
  handleResize() {
    if (this.myChart) {
      this.myChart.resize()
    }
  }
}

自定义主题样式

创建自定义主题

const myTheme = {
  color: ['#c23531', '#2f4554', '#61a0a8'],
  backgroundColor: '#f5f5f5'
}

// 注册主题
echarts.registerTheme('myTheme', myTheme)

// 使用主题
echarts.init(chartDom, 'myTheme')

标签: 折线图vue
分享给朋友:

相关文章

vue实现图片分析

vue实现图片分析

Vue 实现图片分析的方法 在 Vue 中实现图片分析通常涉及图片上传、预览、后端交互以及分析结果展示等功能。以下是几种常见的实现方式: 使用 HTML5 File API 和 Canvas 进行…

vue设计与实现下载

vue设计与实现下载

vue设计与实现电子书下载 《Vue.js设计与实现》是一本深入解析Vue.js框架原理的书籍,由霍春阳(HcySunYang)撰写。以下是获取该资源的常见途径: 正版购买渠道 京东、…

vue实现画圆弧并着色

vue实现画圆弧并着色

在 Vue 中实现画圆弧并着色 使用 Canvas API 绘制圆弧 在 Vue 组件的 mounted 钩子中,通过 Canvas API 绘制圆弧。创建一个 canvas 元素并获取其上下文:…

vue请求实现进度条

vue请求实现进度条

实现请求进度条的方法 在Vue中实现请求进度条可以通过多种方式完成,常见的有使用第三方库如axios结合nprogress或自定义进度条组件。以下是几种实现方法: 使用axios和nprogress…

vue优秀实现

vue优秀实现

Vue.js 优秀实现方法 响应式数据管理 使用 Vue 的 ref 和 reactive 处理基础类型和对象类型数据,结合 computed 计算属性优化渲染性能。对于复杂状态,推荐 Pinia 替…

vue实现轮询

vue实现轮询

实现轮询的基本方法 在Vue中实现轮询可以通过setInterval或setTimeout配合递归调用完成。轮询通常用于定期向服务器请求数据更新。 使用setInterval的简单示例: da…