axios请求数据,饼图动态数据展示

1.先写一个div

<template>
<div>

  <div id="chartPie"></div>

</div>
</template>

<script>
//引用echarts
import echarts from "echarts";
//请求数据
import {getPieData} from "@/network/cart";

export default {
name: "Cart",
  data(){
  return{
    piedata:[],
  }
  },

    methods:{
      //处理后台获取的数据
      //后台数据格式:{'a':50,'b':80}
     async getData(){
        let result =  await getPieData()
          console.log(result);
          var arr = []
          for (let i in result) {
            let o = {};
            o["name"] = i;
            o["value"] = result[i];
            arr.push(o)
          }
          this.piedata = arr;
          this.drawPieChart();
      },
      //饼图
      drawPieChart() {
        let myCharts= echarts.init(document.getElementById("chartPie"));

        myCharts.setOption({
          title: {
            text: "Pie Chart",
            subtext: "数据分析",
            x: "center"
          },
          tooltip: {
            trigger: "item",
            formatter: "{a} <br/>{b} : {c} ({d}%)"
          },
          legend: {
            orient: "vertical",
            left: "left",
            data: ["a", "b"]
          },
          series: [
            {
              name: "访问来源",
              type: "pie",
              radius: "55%",
              center: ["50%", "60%"],
              data: this.piedata,
              itemStyle: {
                emphasis: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: "rgba(0, 0, 0, 0.5)"
                }
              }
            }
          ]
        });
      },
      drawCharts() {
        this.drawPieChart();
      }
},

  mounted() {
    this.drawPieChart();
    },
}
</script>

请求数据

//饼图数据获取,基于基础路径
export function getPieData() {
  return request({
    url: '/s/',
    method:"get"
  })
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常感谢您的问题。对于您的问题,我可以回答。 要使用Vue Element UI在前端请求后台获取数据并绘制,您可以先通过Vue Resource或Axios等工具发送GET或POST请求,将返回的数据作为参数传递给Element UI的组件,然后使用组件的数据属性和配置属性设置的外观和行为。 下面是一个简单的示例代码: ``` <template> <div> <el-chart :data="chartData" type="pie" :settings="chartSettings"></el-chart> </div> </template> <script> import { reactive } from 'vue'; import { ElChart } from 'element-plus'; export default { components: { ElChart, }, setup() { const chartData = reactive({ legend: ['A', 'B', 'C', 'D', 'E'], series: [ { name: 'A', value: 235 }, { name: 'B', value: 274 }, { name: 'C', value: 310 }, { name: 'D', value: 335 }, { name: 'E', value: 400 }, ], }); const chartSettings = reactive({ title: 'Pie Chart', tooltip: { trigger: 'item' }, legend: { type: 'scroll', orient: 'vertical', right: 10, top: 20, bottom: 20 }, series: [ { type: 'pie', radius: '55%', center: ['40%', '50%'], data: chartData.series, emphasis: { scale: true, focus: 'series' }, label: { show: true, formatter: '{b}: {d}%', }, labelLine: { show: true }, }, ], }); return { chartData, chartSettings }; }, }; </script> ``` 这个例子使用Vue 3和Element Plus库,并在setup函数中使用reactive函数定义了两个响应式对象,用于保存数据和配置。组件的类型设置为'pie',数据设置为chartData.series,配置设置为chartSettings。您可以将这些数据和配置替换为从后端接收到的数据和您自己的配置。 希望这个示例代码可以帮助您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值