当前位置: 首页 > article >正文

引入echarts环形图及显示后端数据

实现效果:

1.下载echarts 并引用

npm install echarts --save 或 pnpm install -S echarts

项目中引用:

在项目main.ts中         import * as echarts from "echarts"; //引入echarts

3.页面中使用

<div id="main" class="chart" :option="option"></div>//定义一个有宽高的盒子

//图表
const echartInit = async () => {
  var chartDom = document.getElementById('main');
  var myChart = echarts.init(chartDom);
  var option;
  let datas = []
  let numAll = ('0')
//调用后台接口
  const res = await getType();
  if (res && res.code == 200) {
    datas = res.data

  }
  //总计
   datas.forEach((item) => {
     let value = parseInt(item.value)
     numAll = numAll+ value - 0
  })
  // 指定图表的配置项和数据
  option = {
    // title: {
    //   text: '诉求类型分布',
    //   left: 'center',
    //   textStyle: {
    //   color: '#fff',
    //   fontWeight: 'normal',
    //   fontSize: 18
    // }
    // },
    graphic: [
          {
            //环形图中间添加文字
            type: "text", //通过不同top值可以设置上下显示
            left: "45%",
            top: "47%",
            style: {
              text: `总计\n\n${numAll}条`,
              textAlign: "center",
              fill: "#fff", //文字的颜色
              fontSize: 12,
              lineHeight: 10,
            },
          },
        ],
    tooltip: {
      trigger: 'item'
    },
    legend: {
      // top: '5%',
      // orient: 'vertical',
      left: 'center',
      bottom: -5,
      icon: 'circle',
      textStyle: {//图例文字的样式
        color: '#fff',
        fontSize:12,
      }

    },
    color:['#33ff99','#6699ff','#be99FF','#FFFF66'],//修改圆形图颜色
    series: [
      {
        name: '诉求类型',
        type: 'pie',
        radius: ['35%', '50%'],
        // center:['30%', '50%'],
        avoidLabelOverlap: true,
        minAngle: 20,//最小的扇区角度(0 ~ 360),用于防止某个值过小导致扇区太小影响交互
        itemStyle: {
          borderRadius: 10,
          borderColor: '#fff',
          borderWidth: 2
        },
        label: {
          show: false,
          normal: {
                   show: true,
                   lineHeight:10,
                   // position: 'inside',
                  formatter: '{b}{d}%\n\n{c}条', //自定义显示格式(b:name, c:value, d:百分比)
                  fontSize: 10   // 字体大小
                  },
          // position: 'center'
        },
        labelLine: {
         length: 20,
         length2: 50,
         maxSurfaceAngle: 80
        },
       emphasis:{
          shadowBlur: 10,
          hadowOffsetX: 0,
          shadowColor: 'rgba(0, 0, 0, 0.5)'
          },
        emphasis: {
          label: {
            show: true,
            fontSize: 12,
            fontWeight: 'bold'
          }
        },
        itemStyle: {
             borderColor: '#fff',
             borderWidth: -1
             },
        data: datas
      }
    ]
  };
  // 使用刚指定的配置项和数据显示图表。
  option && myChart.setOption(option);

}

可根据自己需求配置相关样式


http://www.kler.cn/a/232887.html

相关文章:

  • 408模拟卷较难题(无分类)
  • [CKS] K8S NetworkPolicy Set Up
  • Linux 系统管理和监控命令---- auditctl命令
  • C++模板特化实战:在使用开源库boost::geometry::index::rtree时,用特化来让其支持自己的数据类型
  • 边缘计算在智能交通系统中的应用
  • Unity3D学习FPS游戏(12)敌人检测和攻击玩家
  • 新增同步管理、操作日志模块,支持公共链接分享,DataEase开源数据可视化分析平台v2.3.0发布
  • 并发、串行与同步、异步
  • 放飞梦想,扬帆起航——1888粉丝福利总结
  • C++算法之双指针、BFS和图论
  • 【开源】基于JAVA+Vue+SpringBoot的假日旅社管理系统
  • 回溯算法:N皇后问题
  • 应用ANN+SMOTE+Keras Tuner算法进行信用卡交易欺诈侦测
  • JPEG图像的压缩标准(1)
  • 【蓝桥杯冲冲冲】Invasion of the Milkweed G
  • Excel——有效性、二级菜单联动
  • 【开源】JAVA+Vue+SpringBoot实现班级考勤管理系统
  • pytorch——保存‘类别名与类别数量’到权值文件中
  • python创建udf函数步骤
  • macbook电脑如何永久删除app软件?
  • java基础(2) 面向对象编程-java核心类
  • pytest+allure批量执行测试用例
  • Linux操作系统基础(三):虚拟机与Linux系统安装
  • MATLAB环境下用于提取冲击信号的几种解卷积方法
  • 致我的2023年——个人学年总结
  • 32I2C通信协议