echart饼图通过axios写入数据

首先在ecahrt文档上找到想要的饼图,这里我用的是第一个
https://echarts.apache.org/examples/zh/index.html#chart-type-pie

1.把示例代码粘过来

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

option = {
  title: {
    text: 'Referer of a Website',
    subtext: 'Fake Data',
    left: 'center'
  },
  tooltip: {
    trigger: 'item'
  },
  legend: {
    orient: 'vertical',
    left: 'left'
  },
  series: [
    {
      name: 'Access From',
      type: 'pie',
      radius: '50%',
      data: [
        { value: 1048, name: 'Search Engine' },
        { value: 735, name: 'Direct' },
        { value: 580, name: 'Email' },
        { value: 484, name: 'Union Ads' },
        { value: 300, name: 'Video Ads' }
      ],
      emphasis: {
        itemStyle: {
          shadowBlur: 10,
          shadowOffsetX: 0,
          shadowColor: 'rgba(0, 0, 0, 0.5)'
        }
      }
    }
  ]
};

option && myChart.setOption(option);

2.这个数据是死数据,写入axios请求覆盖掉它本身的假数据,
下面这几个是我根据我传输的数据设置的变量

		Categories:[],
        categoryNameList:[],
        categorySums:[],
        pieData:[]

将得到的对象数组遍历,设置成{value:,name:}形式,并通过PieChart.setOption进行赋值

		let chartDom = document.getElementById('PieChart');
        let PieChart = echarts.init(chartDom);
        request.get("/category/selectCategorySum").then(res => {
          this.Categories = res.data
          for(var i=0;i<this.Categories.length;i++){
            this.pieData.push({value:this.Categories[i].categorySum,name:this.Categories[i].categoryName});
          }
        }).then(res=>{
          PieChart.setOption({
            series: [{
              data: this.pieData
            }]
          })
        });

全部代码:

<template><!--这里写入页面-->
  <div style="margin-top: 15px">
	<div id="PieChart"></div>
  </div>
</template>
<script>
  import * as echarts from "echarts";
  import request from "@/utils/request";
  export default {
    name: 'HelloWorld',
    data() {
      return {//变量
        Categories:[],
        categoryNameList:[],
        categorySums:[],
        pieData:[]
      };
    },
    mounted() {//调用
      this.drawPieChart();
    },
    methods: {
      drawPieChart() {//画饼方法
        let chartDom = document.getElementById('PieChart');
        let PieChart = echarts.init(chartDom);
        request.get("/category/selectCategorySum").then(res => {
          this.Categories = res.data
          for(var i=0;i<this.Categories.length;i++){
            this.pieData.push({value:this.Categories[i].categorySum,name:this.Categories[i].categoryName});
          }
        }).then(res=>{
          PieChart.setOption({
            series: [{
              data: this.pieData
            }]
          })
        });
        PieChart.setOption({
        //下面就纯官方文档的option,内容可以就这样不改,反正覆盖掉了,改下title和饼大小即可
          title: {
            text: '图书类别构成',
            padding: [5,10,20,10],
            left: 'center'
          },
          tooltip: {
            trigger: 'item'
          },
          legend: {
            orient: 'vertical',
            left: 'left'
          },
          series: [
            {
              name: '',
              type: 'pie',
              radius: '80%',
              top:'20%',
              data: [
                { value: 1048, name: 'Search Engine' },
                { value: 735, name: 'Direct' },
                { value: 580, name: 'Email' },
                { value: 484, name: 'Union Ads' },
                { value: 300, name: 'Video Ads' }
              ],
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ]
        });
      }
    }
}

示例图
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值