Skip to content
静心静心
HOME
DoubtfulCases
github icon
  • 疑难杂症

    • 滑轮滑动横向滚动
      • 利用Echarts画圆形图
        • 如何下载后端返回的文件流
          • vue无法播放Audio

          通过Echart画圆形图

          author iconYYtimer icon大约 1 分钟

          # 通过Echart画圆形图

          // 最好去找echarts社区(重点)
          
          let dashedPic =
            "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM8AAAAOBAMAAAB6G1V9AAAAD1BMVEX////Kysrk5OTj4+TJycoJ0iFPAAAAG0lEQVQ4y2MYBaNgGAMTQQVFOiABhlEwCugOAMqzCykGOeENAAAAAElFTkSuQmCC";
          
          let color = ["#FF8700", "#ffc300", "#00e473", "#009DFF", "#009D00"];
          
          // 数据
          let chartData = [
            {
              name: "事件类别1",
              value: 95,
            },
            {
              name: "事件类别2",
              value: 75,
            },
            {
              name: "事件类别3",
              value: 55,
            },
            {
              name: "事件类别4",
              value: 40,
            },
            {
              name: "事件类别5",
              value: 20,
            },
          ];
          let arrName = [];
          let arrValue = [];
          let sum = 0;
          let lineYAxis = [];
          
          // 数据处理
          chartData.forEach((v, i) => {
            arrName.push(v.name);
            arrValue.push(v.value);
          });
          
          const radius = [
            ["43%", "50%"], // 7
            ["34%", "40%"], // 6
            ["26%", "31%"], // 5
            ["19%", "23%"], // 4
            ["13%", "16%"], // 3
          ];
          const pieSeries = [];
          
          // 图表option整理
          chartData.forEach((v, i) => {
            pieSeries.push({
              name: "事件",
              type: "pie",
              clockWise: false,
              hoverAnimation: false,
              radius: radius[i],
              center: ["25%", "50%"],
              itemStyle: {
                borderRadius: 10,
              },
              label: {
                show: false,
              },
              data: [
                {
                  value: v.value * 0.75,
                  name: v.name,
                },
                {
                  value: 100 - v.value * 0.75,
                  name: "",
                  itemStyle: {
                    color: "rgba(0,0,0,0)",
                  },
                },
              ],
            });
            // 背景
            pieSeries.push({
              name: "",
              type: "pie",
              silent: true,
              z: 1,
              clockWise: false,
              hoverAnimation: false,
              radius: radius[i],
              center: ["25%", "50%"],
              label: {
                show: false,
              },
              data: [
                {
                  value: 7.5,
                  itemStyle: {
                    color: "#EEEEEE",
                  },
                },
                {
                  value: 2.5,
                  name: "",
                  itemStyle: {
                    color: "rgba(0,0,0,0)",
                  },
                },
              ],
            });
          
            v.percent = ((v.value / sum) * 100).toFixed(1) + "%";
              lineYAxis.push({
              value: i,
              textStyle: {
                rich: {
                  circle: {
                    color: color[i],
                    padding: [0, 5],
                  },
                },
              },
            });
          
          });
          
          option = {
            backgroundColor: "#fff",
              xAxis: [
              {
                show: false,
              },
            ],
              color: color,
            grid: {
              top: "25%",
              bottom: "55%",
              left: "50%",
              containLabel: false,
            },
               yAxis: [
              {
                type: "category",
                inverse: true,
                axisLine: {
                  show: false,
                },
                axisTick: {
                  show: false,
                },
                axisLabel: {
                formatter: function (params) {
                    let item = chartData[params];
                    console.log(item);
                    return (
                      "{line|}{circle|●}{name|" +
                      item.name +
                      "}{bd||}{percent|" +
                      item.percent +
                      "}{value|" +
                      item.value +
                      "}{unit|元}"
                    );
                  },
                
                
                  show: true,
                },
                data: lineYAxis,
              },
            ],
            series: pieSeries,
          };
          
          
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          26
          27
          28
          29
          30
          31
          32
          33
          34
          35
          36
          37
          38
          39
          40
          41
          42
          43
          44
          45
          46
          47
          48
          49
          50
          51
          52
          53
          54
          55
          56
          57
          58
          59
          60
          61
          62
          63
          64
          65
          66
          67
          68
          69
          70
          71
          72
          73
          74
          75
          76
          77
          78
          79
          80
          81
          82
          83
          84
          85
          86
          87
          88
          89
          90
          91
          92
          93
          94
          95
          96
          97
          98
          99
          100
          101
          102
          103
          104
          105
          106
          107
          108
          109
          110
          111
          112
          113
          114
          115
          116
          117
          118
          119
          120
          121
          122
          123
          124
          125
          126
          127
          128
          129
          130
          131
          132
          133
          134
          135
          136
          137
          138
          139
          140
          141
          142
          143
          144
          145
          146
          147
          148
          149
          150
          151
          152
          153
          154
          155
          156
          157
          158
          159
          160
          161
          162
          163
          164
          165
          166
          167
          168
          169
          170
          171
          172
          edit icon编辑此页open in new window
          上一页
          滑轮滑动横向滚动
          下一页
          如何下载后端返回的文件流
          傻瓜都能写出计算机可以理解的代码。唯有能写出人类容易理解的代码的,才是优秀的程序员。
          Copyright © 2022 YY

          该应用可以安装在您的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和您的操作系统安全地进行交互。

          详情