Vue引用echarts图表

简介: 作者主页:https://www.couragesteak.com/

1 安装/卸载

echarts官方文档:https://echarts.apache.org/zh/index.html

1.1 安装

安装最新版

npm install echarts --save

指定版本安装

npm install echarts@4.8.0 --save

1.2 卸载

npm uninstall echarts

2 引入

2.1 全局引入

V4

import echarts from 'echarts'

V5

import * as echarts from 'echarts'

2.2 按需引入

V4

 import echarts from 'echarts/lib/echarts'

V5

import * as echarts from 'echarts/lib/echarts'

3 实战

Test.vue

<template>
    <div>
        <div ref="new_user_day_lineChart" style="width: 400px; height: 400px; background-color: #ffffff; padding: 20px; border-radius: 20px;"></div>
    </div>
</template>

<script>
  let url = 'http://127.0.0.1/';

  import * as echarts from 'echarts'
  import {get} from "../http/api.js";
  import {lineChart_option, pie_option} from '../echarts/echarts_option.js'

  let a_day_list;
  let a_day_num_list;

  export default {
    name: "Test",
    mounted() {
      let that = this;

      // 新增用户 日统计 初始化
      that.new_user_day_lineChart = echarts.init(this.$refs.new_user_day_lineChart);

     get(url + '/bigdata_info', 'post', "").then(res => {
        console.log(res.data)

        a_day_list = res.data.a_day_list;
        a_day_num_list = res.data.a_day_num_list;

        // 新增用户 日统计
        that.new_user_day_lineChart.setOption(lineChart_option("新增用户", "日统计", u_day_list, "人", u_day_num_list, ['red']))
      })
    }
  }
</script>

echarts_option.js

/**
 * lineChart: 折线图
 * title: 标题
 * color: 折线颜色 ['red','blue']
 * */
export const lineChart_option = (title, subtitle, date_list, unit, num_list, color) => {
  let option = {
    title: {
      text: title,
      subtext: subtitle,
      left: 'center'
      // textStyle: {
      //   color: '#fff'
      // }
    },
    // 提示框
    tooltip: {
      trigger: 'axis'
    },
    // 图例
    // legend: {
    //   icon: 'circle',
    //   left: 'center',
    //   top: 0,
    //   data: ['好评', '一般', '差评']
    // },
    // 比例大小
    // 比例大小
    grid: {
      left: '3%',
      right: '12%',
      bottom: '3%',
      containLabel: true
    },
    // 工具栏
    toolbox: {
      feature: {
        saveAsImage: {
          type: 'png'
        },
        magicType: {
          type: ['line', 'bar', 'stack']
        }
      }
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      // data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
      data: date_list
    },
    yAxis: {
      type: 'value',
      // 初始化 单位 (可以不填)
      axisLabel: {
        formatter: '{value} ' + unit
      },
      // axisPointer: {
      //   snap: true
      // }
      textStyle: {
        color: '#fff'
      }
    },
    series: [
      {
        name: '新增',
        type: 'line',
        // smooth: true, // 平滑曲线显示
        // data: [120, 132, 101, 134, 190, 230, 210, 201, 234, 290, 230, 210],
        data: num_list,
        smooth: true,
        // 取最大、小值
        markPoint: {
          data: [
            {type: 'max', name: 'Max'},
            {type: 'min', name: 'Min'}
          ]
        },
        // 取平均值
        markLine: {
          data: [{type: 'average', name: 'Avg'}]
        }
      }
    ],
    color: color //['red']
  }
  return option;
}

/**
 * lineChart: 饼图
 * color: ['red','blue']
 * */
export const pie_option = (num_json, color) => {
  let option = {
    title: {
      text: '文章占比',
      // subtext: 'Fake Data',
      left: 'center',
      top: 5
    },
    series: [
      {
        name: 'Access From',
        type: 'pie',
        radius: '55%',
        data: num_json,
        // data: [
        //   {value: 1048, name: 'Search Engine'}
        // ],
        emphasis: {
          itemStyle: {
            shadowBlur: 10,
            shadowOffsetX: 0,
            shadowColor: 'rgba(0, 0, 0, 0.5)'
          }
        }
      }
    ],
    tooltip: {
      trigger: 'item'
    },
    legend: {
      orient: 'vertical',
      left: 'bottom'
      // left: 'left'
    },
    // 保存图片
    toolbox: {
      show: true,
      feature: {
        saveAsImage: {}
      }
    },
    color: color,
  };
  return option;
}
相关文章
|
2月前
|
JSON JavaScript 定位技术
vue中使用echarts实现省市地图绘制,根据数据显示省市天气图标及温度信息
vue中使用echarts实现省市地图绘制,根据数据显示省市天气图标及温度信息
315 1
|
2月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
86 1
|
2月前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
531 0
|
2月前
|
JSON JavaScript 前端开发
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
693 0
|
2月前
|
JSON JavaScript 定位技术
Vue结合ECharts绘制省市地图:数据驱动区域颜色展示,支持省市下钻与经纬度打点功能
Vue结合ECharts绘制省市地图:数据驱动区域颜色展示,支持省市下钻与经纬度打点功能
202 0
|
3月前
|
Web App开发 数据可视化 前端开发
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
本文介绍了ECharts的基本使用和语法格式,包括如何引入ECharts、创建容器、初始化echarts实例对象、配置option参数和一些基础图表的绘制方法。文章还提供了简单图表绘制和使用图例添加的示例代码,以及对ECharts特性和优势的概述。
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
|
4月前
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
543 1
微信小程序使用echarts图表(ec-canvas)
|
4月前
|
前端开发 数据可视化 JavaScript
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
Echarts如何实现多图表缩放和自适应?附源码
|
4月前
Echarts——如何默认选中图表并显示tooltip
Echarts——如何默认选中图表并显示tooltip
99 1
|
4月前
|
JavaScript
echarts在Vue项目中的实际运用效果图
这篇文章展示了在Vue项目中使用ECharts图表库的步骤,包括安装ECharts、引入到Vue组件、创建图表实例以及通过watch监听数据变化来实现实时数据更新的方法。
echarts在Vue项目中的实际运用效果图