element 绘制饼状图(复制代码直接用),付效果图

先上代码 (复制代码直接使用)

<template>
	<div class="home-index-box">
		<!--饼状图and环形图-->
		<div class="graph-pie-warp">
			<el-row :gutter="30">
				<el-col :span="12">
					<div id="home_gathering_source"
						 style="height: 300px; margin:30px 10px; padding: 0px;"></div>
				</el-col>
			</el-row>
		</div>
	</div>
</template>

<script>
  import ECharts from 'echarts'
  let gatheringSourceOption = {
    title: {
      text: '最近7日占比图:',
      left: 'left'
    },
    tooltip: {
      trigger: 'item',
      formatter: '{a} <br/>{b} : {c} ({d}%)'
    },
    legend: {
      type: 'scroll',
      orient: 'vertical',
      right: 0,
      top: 'center',
      icon: 'circle',
      selectedMode: 'multiple',
      formatter: (name) => { //legend显示数据格式化,每一个 legend 渲染都会回调这个函数
        let data = gatheringSourceOption.series[0].data //获取当前对象的series.data
        let total = 0 //数据对象总和存放
        let tarValue = 0 // 当前对象的value 值
        for (let i = 0, l = data.length; i < l; i++) { //循环饼状图数据对象
          total += data[i].value  //计算出当前对象总和
          if (data[i].name == name) {
            tarValue = data[i].value //存放当前渲染的legend 对象
          }
        }
        let p = (tarValue / total * 100).toFixed(2) //百分比保留小数点后两位
        return `${name}  |  ${p}%  `
      }
    },
    series: [
      {
        name: '最近7日占比',
        type: 'pie',
        radius: '60%',
        center: ['25%', '55%'],
        selectedMode: 'single',
        data: [ ],
        label: {
          show: false
        },
        itemStyle: {
          emphasis: {
            shadowBlur: 10,
            shadowOffsetX: 0,
            shadowColor: 'rgba(0, 0, 0, 0.5)'
          }
        }
      }
    ]
  }
  export default {
    data() {
      return {
        gatheringSourceOption,
      }
    },
	 mounted() {
	    this.getProportionData()//收款的饼图的数据
	},
    methods: {
    eChartsInit(domId, theme, opt) {
        ECharts.init(document.getElementById(domId), theme).setOption(opt)
        window.addEventListener('resize', () => {
          ECharts.init(document.getElementById(domId), theme).resize()
        })
      },
      //获取收款饼图的数据
      getProportionData() {
		let _this = this;
		var sourceList=[
          { value: 1, name: '苹果' },
          { value: 2, name: '草莓' },
          { value: 2, name: '西瓜' },
          { value: 3, name: '桔子' },
          { value: 2, name: '葡萄' },
          { value: 4, name: '柿子' }
        ]
		this.gatheringSourceOption.series[0].data = sourceList
		this.eChartsInit('home_gathering_source', 'light', this.gatheringSourceOption)
      }
    }
  }
</script>

在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值