echart 入门小案例

1.创建一个vue项目:

         第一步: vue install -g @vue/cli  

         第二步: vue create projectName(自定义项目名称)

注意:vue-cli 4.0内置了webpack,所以不需要在安装webpack,可能有一个依赖包报错,启动项目要重新运行 npm install(安装依赖)或者cnpm install

2.npm 安装echart  命令:npm install echarts -S(-S表示:开发环境和生产环境都需要,-D:表示开发环境需要)

3.在Home.vue文件中(如下面代码,也可以全部复制到Home.vue中,附成功示图)

<template>

  <div class="home">

    <img alt="Vue logo" src="../assets/logo.png" />

    <HelloWorld msg="Welcome to Your Vue.js App" />

     <!-- 为ECharts准备一个具备大小(宽高)的Dom -->

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

  </div>

</template>

 

<script>

// @ is an alias to /src

import HelloWorld from "@/components/HelloWorld.vue";

var echarts = require('echarts');  // 引入echart 或者 import echarts from "echarts"

 

export default {

  name: "home",

  components: {

    HelloWorld

  },

// 写在mounted 函数中

  mounted(){   

// 基于准备好的dom,初始化echarts实例

    var myChart = echarts.init(document.getElementById('main'));

    var data = genData(50);

// 指定图表的配置项和数据 注意:option前面要加var,不然报错option未定义

 var option = {

    title : {

        text: '同名数量统计',

        subtext: '纯属虚构',

        x:'center'

    },

    tooltip : {

        trigger: 'item',

        formatter: "{a} <br/>{b} : {c} ({d}%)"

    },

    legend: {

        type: 'scroll',

        orient: 'vertical',

        right: 10,

        top: 20,

        bottom: 20,

        data: data.legendData,

 

        selected: data.selected

    },

    series : [

        {

            name: '姓名',

            type: 'pie',

            radius : '55%',

            center: ['40%', '50%'],

            data: data.seriesData,

            itemStyle: {

                emphasis: {

                    shadowBlur: 10,

                    shadowOffsetX: 0,

                    shadowColor: 'rgba(0, 0, 0, 0.5)'

                }

            }

        }

    ]

};

 

function genData(count) {

    var nameList = [

        '赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹', '姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞', '熊', '纪', '舒', '屈', '项', '祝', '董', '梁', '杜', '阮', '蓝', '闵', '席', '季', '麻', '强', '贾', '路', '娄', '危'

    ];

    var legendData = [];

    var seriesData = [];

    var selected = {};

    for (var i = 0; i < 50; i++) {

        name = Math.random() > 0.65

            ? makeWord(4, 1) + '·' + makeWord(3, 0)

            : makeWord(2, 1);

        legendData.push(name);

        seriesData.push({

            name: name,

            value: Math.round(Math.random() * 100000)

        });

        selected[name] = i < 6;

    }

 

    return {

        legendData: legendData,

        seriesData: seriesData,

        selected: selected

    };

 

    function makeWord(max, min) {

        var nameLen = Math.ceil(Math.random() * max + min);

        var name = [];

        for (var i = 0; i < nameLen; i++) {

            name.push(nameList[Math.round(Math.random() * nameList.length - 1)]);

        }

        return name.join('');

    }

}

 // 使用刚指定的配置项和数据显示图表。

myChart.setOption(option);

 

  }

  

};

</script>

 

成功后页面:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值