vue中使用ECharts实现饼图

vue中使用ECharts实现饼图

效果:

1.安装echarts和引入在这里插入图片描述
1.安装echarts

npm install echarts --save

2.引入

//引入饼状图
import * as echarts from 'echarts'
//注册全局
Vue.prototype.$echarts = echarts

3.使用
html片段:

<div :style="piestyle">
      <el-card style="margin-left: 150px;margin-right: 150px;margin-top: 20px;">
        <div class="chart-container">
          <div id="chartPie" style="width:100%; height:550px;"></div>
        </div>
      </el-card>
    </div>

script片段:

data() {
      return {
        chartPie: '',
        typeName: [], //帖子类型名称
        typeNum: [], //帖子类型数量
      }
    },
    methods: {
      drawPieChart() {
        this.chartPie = this.$echarts.init(document.getElementById("chartPie"));
        this.chartPie.setOption({
          //设置标题,副标题,以及标题位置居中
          title: {
            text: '帖子统计(饼状图)',
            //subtext: '纯属虚构',
            x: 'center'
          },
          //具体点击某一项触发的样式内容
          tooltip: {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)"
          },
          //左上侧分类条形符
          legend: {
            orient: 'vertical',
            left: 'left',
            data: []
          },
          //饼状图类型以及数据源
          series: [{
            name: '统计数量',
            type: 'pie',
            data: [],
            //设置饼状图扇形区域的样式
            itemStyle: {
              emphasis: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            },
          }]
        });
      },
      //动态获取饼状图的数据
      async initData() {
        this.$http.post("请求").then(response => {
          var getData = [];
          //先进行赋值
          for (let i = 0; i < response.data.target.length; i++) {
            var obj = new Object();
            obj.name = response.data.target[i].name;//名称
            obj.value = response.data.target[i].totalCard;//数量
            getData[i] = obj;
          }
          this.chartPie.setOption({
            legend: {
              data: response.data.target.name,
            },
            series: [{
              data: getData,
            }]
          });
        })

      },
      drawCharts() {
        this.drawPieChart();
      },
    },
    mounted() {
      this.initData();
      this.drawCharts();
    }

官网地址:
http://echarts.apache.org/zh/

以下是使用 Vue3 和 Echarts 实现饼图的示例代码: 1. 安装 Echarts:`npm install echarts` 2. 引入 Echarts: ```javascript import echarts from "echarts"; import "echarts/lib/chart/pie"; import "echarts/lib/component/title"; import "echarts/lib/component/tooltip"; import "echarts/lib/component/legend"; ``` 3. 在 Vue3 组件使用 Echarts: ```vue <template> <div ref="chart" style="height: 400px;"></div> </template> <script> import echarts from "echarts"; import "echarts/lib/chart/pie"; import "echarts/lib/component/title"; import "echarts/lib/component/tooltip"; import "echarts/lib/component/legend"; export default { mounted() { // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(this.$refs.chart); // 指定图表的配置项和数据 var option = { title: { text: "饼图示例", left: "center", }, tooltip: { trigger: "item", formatter: "{a} <br/>{b}: {c} ({d}%)", }, legend: { orient: "vertical", left: "left", data: ["直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"], }, series: [ { name: "访问来源", type: "pie", radius: ["50%", "70%"], avoidLabelOverlap: false, label: { show: false, position: "center", }, emphasis: { label: { show: true, fontSize: "30", fontWeight: "bold", }, }, labelLine: { show: false, }, data: [ { value: 335, name: "直接访问" }, { value: 310, name: "邮件营销" }, { value: 234, name: "联盟广告" }, { value: 135, name: "视频广告" }, { value: 1548, name: "搜索引擎" }, ], }, ], }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); }, }; </script> ``` 在上面的示例代码,我们在 `mounted` 钩子函数初始化了一个 Echarts 实例,并使用 `setOption` 方法将图表的配置项和数据传递给 Echarts 实例,从而显示出饼图。 其,`ref` 属性指定了图表所在的 DOM 元素,`title` 属性设置了图表标题,`legend` 属性设置了图例,`series` 属性设置了饼图的数据和样式。 如果需要修改饼图的样式或数据,只需要更改 `option` 对象的属性即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值