echarts 小技巧——绘制进度条

一、饼状图绘制进度条

思路:两个主要参数:1、当前进度 2、总进度,然后再对应设置不同的背景图即可

getPieOption() {
    const pieData = this.systemInfo.hardDiskRatio;
    const total = 100;
    this.pieOption = {
        tooltip: {
                show: false,
                trigger: 'item',
                formatter: '{a} : {a} ({a}%)'
            },
            title: {
                text: '磁盘使用率' + '\n' + pieData + '%' + '\n' + this.systemInfo.remainHardDisk + 'G/' + this.systemInfo.totalHardDisk + 'G',
                top: '38%',
                textAlign: 'center',
                left: '49%',
                textStyle: {
                    color: '#fff',

                }
            },
            color: [this.systemInfo.remainHardDisk > 100 - this.freeHardDisk ? '#ba2e2b' : '#33a0ff', '#0d2854'],
            legend: {
                x: '40%',
                top: '50%',
                itemHeight: 10, // 图例的高度
                itemGap: 8, // 图例之间的间距
                // data: ['磁盘使用率' + pieData + '%']
            },
            series: [
                {
                    name: '磁盘使用率' +  pieData + '%',
                    type: 'pie',
                    radius: ['50%', '60%'],
                    label: {
                      show: false,
                      position: 'center',
                    },
                    labelLine: {
                        normal: {
                            show: false
                        }
                    },
                    emphasis: {
                        label: {
                            color: '#fff ',
                            show: false,
                            fontSize: '20',
                            fontWeight: 'bold'
                        }
                    },
                    data: [
                        {
                          value: pieData, // 需要显示的数据
                          itemStyle: {
                            normal: {
                              label: {
                                show: true,
                                textStyle: {color: '#3c4858', fontSize: '18'}
                                },

                            color: this.systemInfo.hardDiskRatio > 100 - this.freeHardDisk ?'#ba2e2b' : '#33a0ff'
                            }
                          }
                        },
                        {
                          value: total - pieData,
                          itemStyle: {
                            normal: {
                            color: '#215097'
                            }
                          }
                      }
                    ]
                }
            ]
    };
  }

实现效果:

在这里插入图片描述

二、柱状图绘制进度条

思路:当前值,总值,然后提供两种不同的背景色。对于数据类型而言,支持number

// 柱状图绘制进度条
  getBarData() {
    const startTime = this.startTime;
    const endTime = this.endTime;
    console.log(startTime);
    console.log(endTime, 'eee');
    const fomartStartTime = this.format(this.startTime);
    const fomartEndTime = this.format(this.endTime) + fomartStartTime;
    console.log(fomartEndTime, 'fomartEndTime');
    this.barOption = {
      grid: {
        left: '0',
        top: '0',
        right: '0',
        bottom: '0',
        containLabel: true
      },
      xAxis: {
        type: 'value',
        splitLine: {show: false},
        axisLabel: {show: false},
        axisTick: {show: false},
        axisLine: {show: false},
      },
      yAxis: {
        type: 'category',
        axisTick: {show: false},
        axisLine: {show: false},
        axisLabel: {
          color: 'rgba(255,255,255,0.6)',
          fontSize: 14
        },
        data: [startTime]
      },
      series: [
        {
          name: '%',
          type: 'bar',
          barWidth: 19,
          data: [fomartStartTime],
          label: {
            show: true,
            position: 'right',
            offset: [0, 0],
            formatter: function (value, index) {
                return value = endTime;
            },
            color: 'rgba(255,255,255,0.6)',
            fontSize: 14
          },
          itemStyle: {
            normal: {
              barBorderRadius: 10,
              color: 'rgba(3,131,206, 0.6)'
            }
          },
          zlevel: 1
        },
        {
          name: '进度条背景',
          type: 'bar',
          barGap: '-100%',
          barWidth: 19,
          data: [fomartEndTime],
          color: 'rgba(23,52,103, 0.6)',
          itemStyle: {
            normal: {
              barBorderRadius: 10
            }
          }
        }
      ]
    };
  }

在这里插入图片描述

ECharts 是一个使用 JavaScript 实现的开源可视化库,它可以在网页中创建各种图表。绘制三个城市空气质量数据的步骤大致如下: 1. 引入 ECharts 库:在 HTML 文件中通过 `<script>` 标签引入 ECharts 库文件。 ```html <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script> ``` 2. 准备数据:定义三个城市的空气质量数据,例如 PM2.5、PM10、SO2 等指标的数值。 ```javascript var cityData = [ { name: '城市A', value: [120, 150, 200] }, { name: '城市B', value: [140, 180, 190] }, { name: '城市C', value: [130, 210, 220] } ]; ``` 3. 准备 ECharts 实例:在 HTML 中定义一个 `div` 容器,并在 JavaScript 中初始化 ECharts 实例。 ```javascript var myChart = echarts.init(document.getElementById('main')); ``` 4. 配置 ECharts 选项:配置图表的标题、系列类型、数据等。 ```javascript var option = { title: { text: '空气质量对比' }, tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, xAxis: { type: 'category', boundaryGap: false, data: ['PM2.5', 'PM10', 'SO2'] }, yAxis: { type: 'value' }, series: [ { name: '城市A', type: 'bar', data: cityData[0].value, emphasis: { focus: 'series' } }, { name: '城市B', type: 'bar', data: cityData[1].value, emphasis: { focus: 'series' } }, { name: '城市C', type: 'bar', data: cityData[2].value, emphasis: { focus: 'series' } } ] }; ``` 5. 将配置项设置给 ECharts 实例并显示图表。 ```javascript myChart.setOption(option); ``` 6. 完整的 HTML 示例代码: ```html <!DOCTYPE html> <html style="height: 100%"> <head> <meta charset="utf-8"> </head> <body style="height: 100%; margin: 0"> <div id="main" style="height: 100%"></div> <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script> <script type="text/javascript"> // ...以上提到的 JavaScript 代码... </script> </body> </html> ``` 以上是使用 ECharts 绘制三个城市空气质量数据的基本步骤。实际应用中,你可能需要根据具体的数据结构和需求进行调整,例如添加图例、调整颜色、设置交互功能等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值