使用Vue+Echert集成实现数据可视化

194 阅读1分钟

前言

这些年随着互联网的发展,越来越多的人对传统数字型的数据进行图表化,应运而生了很多可视化工具以及图标库,其中echarts 应该是国内做的最好的可视化库之一了,那我我使用选择 echarts无非它是开源免费,上手容易,而且它提供的样式模板基本都能满足大部分开发。 那不多bb,切入正题。

办法一

  1. 安装echarts依赖 npm用户:
//   二选一
npm install echarts --save

npm install echarts -S

cnpm用户:此处淘宝镜像

//   二选一
npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm install echarts -S

  1. 全局引入main.js 中引入 echarts
import echarts from ’echarts‘

Vue.prototype.$echarts = echarts
  1. 创建Demo测试 Demo.vue
<template>
	<div id="myChart" :style="{width: '450px', height: '300px'}"></div>
</template>
<script>
export default {
  name: 'Echarts',
  data () {
    return {
      msg: 'Vue + Echarts'
    }
  },
  mounted(){
    this.drawLine();
  },
  methods: {
    drawLine(){
        // 基于准备好的dom,初始化echarts实例
        let myChart = this.$echarts.init(document.getElementById('myChart'))
        // 绘制图表
        myChart.setOption({
            title: { text: 'ECharts 入门示例' },
            tooltip: {},
            legend: {
              data: ["销量"]
            },
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        });
    }
  }
}
</script>

  1. 效果图 效果图

办法二

  1. 安装组件
npm install vue-echarts -S
  1. 导入需要的图表 如:
// echarts 按需引入
let echarts2 = require("echarts/lib/echarts");

// 引入折线图等组件
require("echarts/lib/chart/line");
require("echarts/lib/chart/bar");
require("echarts/lib/chart/radar");

// 引入提示框和title组件,图例
require("echarts/lib/component/tooltip");
require("echarts/lib/component/title");
require("echarts/lib/component/legend");
  1. Demo测试 Demo2.vue
<template>
    <div class="container">
        <div id="main1" class="box"></div>
        <div id="main2" class="box"></div>
        <div id="main3" class="box"></div>
    </div>
</template>
<script>
import echarts from "echarts";
// echarts 按需引入
let echarts2 = require("echarts/lib/echarts");
// 引入折线图等组件
require("echarts/lib/chart/line");
require("echarts/lib/chart/bar");
require("echarts/lib/chart/radar");
// 引入提示框和title组件,图例
require("echarts/lib/component/tooltip");
require("echarts/lib/component/title");
require("echarts/lib/component/legend");
export default {
    name: 'Info1',
    components: {},
    mounted() {
        this.initChart();
    },
    data() {
        return {};
    },
    methods: {
        initChart() {
            let myChart1 = this.$echarts.init(document.getElementById('main1'));
            let myChart2 = echarts.init(document.getElementById('main2'));
            let myChart3 = echarts2.init(document.getElementById('main3'));
            // 绘制图表
            myChart1.setOption(this.setOption('全局全部引入'));
            myChart2.setOption(this.setOption('局部全部引入'));
            myChart3.setOption(this.setOption('局部按需引入'));
        },
        setOption(title) {
            let option = {
                title: { text: title },
                tooltip: {},
                legend: {
                	data: ["销量"]
                },
                xAxis: {
                    data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
                },
                yAxis: {},
                series: [{
                    name: "销量",
                    type: "bar",
                    data: [5, 20, 36, 10, 10, 20]
                }]
            };
        return option;
        }
    }
};
</script>
<style scoped>
.container {
    position: relative;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-around;
}
.box {
    width: 300px;
    height: 300px;
    border: 2px solid #000;
}
</style>
  1. 效果图 多div效果图

总结

Vue集成echarts其实不难,后续可能会引用更高级大型模板来做数据展示,但目前用来做敲门砖还是不错的,另外,本文参考了:

juejin.cn/post/684490…

非常感谢,加油互勉!