ECharts 数据可视化图表有很多,今天就以饼图为例

在这里插入图片描述
第一步: 先来安装echarts

npm install echarts --save

第二步: 在main.js中全局引用ECharts,当然你也可以按需引用。

 import echarts from 'echarts'  //引入echarts
 Vue.prototype.$echarts = echarts  //挂载在全局

注意: 引入 echars 5.0 如果遇到报错 "export ‘default’ (imported as ‘echarts’) was not found in ‘echarts’
请使用以下引入方式:

 import * as echarts from 'echarts'  //引入echarts
 Vue.prototype.$echarts = echarts  //挂载在全局

第三步: 接下来就可以使用了,首先在ECharts官网 找到你想要的效果实例
在这里插入图片描述
点击进入实例详情:

在这里插入图片描述

使用完整代码:
<template>
  <div class="home">
      <!-- 定义图表外层容器 -->
    <div id="myHomeChart" ref="homeEcharts"></div>
  </div>
</template>
<script>
export default {
  data() {
    return {}
  },
  mounted() {
    // 调用当前图表
    this.dataChart()
  },
  methods: {
    // 绘制图表
    dataChart() {
      //初始化图表,this.$refs.homeEcharts获取到图表容器
      var myChart = this.$echarts.init(this.$refs.homeEcharts)
      // 初始化配置(官网实例详情左侧代码,直接复制过来按项目需求修改即可)
      var option = {
        tooltip: {
          trigger: 'item',
          formatter: '{a} <br/>{b}: {c} ({d}%)'
        },
        legend: {
          orient: 'vertical',
          left: 10,
          data: [
            '直达',
            '营销广告',
            '搜索引擎',
            '邮件营销',
            '联盟广告',
            '视频广告',
            '百度',
            '谷歌',
            '必应',
            '其他'
          ]
        },
        series: [
          {
            name: '访问来源',
            type: 'pie',
            selectedMode: 'single',
            radius: [0, '30%'],

            label: {
              position: 'inner'
            },
            labelLine: {
              show: false
            },
            data: [
              { value: 335, name: '直达', selected: true },
              { value: 679, name: '营销广告' },
              { value: 1548, name: '搜索引擎' }
            ]
          },
          {
            name: '访问来源',
            type: 'pie',
            radius: ['40%', '55%'],
            label: {
              formatter: '{a|{a}}{abg|}\n{hr|}\n  {b|{b}:}{c}  {per|{d}%}  ',
              backgroundColor: '#eee',
              borderColor: '#aaa',
              borderWidth: 1,
              borderRadius: 4,
              // shadowBlur:3,
              // shadowOffsetX: 2,
              // shadowOffsetY: 2,
              // shadowColor: '#999',
              // padding: [0, 7],
              rich: {
                a: {
                  color: '#999',
                  lineHeight: 22,
                  align: 'center'
                },
                // abg: {
                //     backgroundColor: '#333',
                //     width: '100%',
                //     align: 'right',
                //     height: 22,
                //     borderRadius: [4, 4, 0, 0]
                // },
                hr: {
                  borderColor: '#aaa',
                  width: '100%',
                  borderWidth: 0.5,
                  height: 0
                },
                b: {
                  fontSize: 16,
                  lineHeight: 33
                },
                per: {
                  color: '#eee',
                  backgroundColor: '#334455',
                  padding: [2, 4],
                  borderRadius: 2
                }
              }
            },
            data: [
              { value: 335, name: '直达' },
              { value: 310, name: '邮件营销' },
              { value: 234, name: '联盟广告' },
              { value: 135, name: '视频广告' },
              { value: 1048, name: '百度' },
              { value: 251, name: '谷歌' },
              { value: 147, name: '必应' },
              { value: 102, name: '其他' }
            ]
          }
        ]
      }
      // 把参数配置放到容器里
      myChart.setOption(option)
    },
    // 销毁实例(看项目需要进行销毁实例)
    destroyChart() {
      this.$echarts.init(this.$refs.homeEcharts).dispose();
    }
  }
}
</script>
<style>
/* 给图表容器定义宽高 */
#myHomeChart {
  width: 800px;
  height: 800px;
}
</style>



如果报错 echarts Cannot read properties of undefined (reading ‘init’)

可以下载4.8.0 版本

npm install echarts@4.8.0 --save

Logo

前往低代码交流专区

更多推荐