• vue + echarts


    1.安装echarts依赖

    npm install echarts -S
    

    或者使用国内的淘宝镜像:

    安装

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

    使用

    cnpm install echarts -S
    

    2.创建图表

    全局引入

    main.js

    // 引入echarts
    import echarts from 'echarts'
    Vue.prototype.$echarts = echarts 
    

    Hello.vue

    <div id="myChart" :style="{ '300px', height: '300px'}"></div>
    

    3.mounted 中调用 (mounted 是 vue 的生命周期,表示挂载完毕,html 已经渲染)

    mounted(){
        this.$nextTick(function() {
            this.drawPie('myChart')
        })
    }
    

    4.组件

    <template>
      	<!--为echarts准备一个具备大小的容器dom-->
      	<div id="myChart" style="300px;height:300px;"></div>
    </template>
    
    <script>
        export default {
            name: '',
            data () {
                return {
                    charts: '',
                    opinion:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'],
                    opinionData:[
                      	{value:335, name:'直接访问'},
                      	{value:310, name:'邮件营销'},
                      	{value:234, name:'联盟广告'},
                      	{value:135, name:'视频广告'},
                      	{value:1548, name:'搜索引擎'}
                    ]
                }
            },
            methods:{
                drawPie(id){
                   	this.charts = $echarts.init(document.getElementById(id));
                   	this.charts.setOption({
                     	tooltip: {
                       		trigger: 'item',
                       		formatter: '{a}<br/>{b}:{c} ({d}%)'
                     	},
                     	legend: {
                       		orient: 'vertical',
                       		x: 'left',
                       		data:this.opinion
                     	},
                     	series: [
                       		{
                         		name:'访问来源',
                         		type:'pie',
                         		radius:['50%','70%'],
                         		avoidLabelOverlap: false,
                         		label: {
                           			normal: {
                             			show: false,
                             			position: 'center'
                           			},
                           			emphasis: {
                             			show: true,
                             			textStyle: {
                               				fontSize: '30',
                               				fontWeight: 'blod'
                             			}
                           			}
                         		},
                         		labelLine: {
                           			normal: {
                             			show: false
                           			}
                         		},
                         		data:this.opinionData
                       		}
                       	]
                   	})
                }
            },
          	//调用
            mounted(){
                this.$nextTick(function() {
                    this.drawPie('myChart')
                })
            }
        }
    </script>
    
    <style scoped>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }
    </style>
    

    5.效果图

    6.监听扇形区域点击事件

  • 相关阅读:
    51nod1459 迷宫游戏
    51nod2006 飞行员配对(二分图最大匹配)
    51nod2006 飞行员配对(二分图最大匹配)
    GIT学习之路第四天 远程仓库
    GIT学习之路第四天 远程仓库
    搞懂树状数组
    搞懂树状数组
    线段树基础详解
    线段树基础详解
    折半枚举(双向搜索)poj27854 Values whose Sum is 0
  • 原文地址:https://www.cnblogs.com/crazycode2/p/7871976.html
Copyright © 2020-2023  润新知