echarts从接口拿数据进行组装

1.演示效果图
在这里插入图片描述
2.写死数据的echatrts代码

var option = {
      tooltip: {
        trigger: 'axis',
      },
      legend: {
        width: 392,
        top: 7,
        icon: 'rec1t',
        itemHeight: 10,
        itemWidth: 10,
        // 设置间距
        itemGap: 17,
        textStyle: {
          color: '#fff',
          fontSize: 14,
        },
        data: ['委托利用处置量', '产生量', '自行利用处置量', '贮存量']
      },
      grid: {
        left: 0,
        right: 0,
        bottom: 18,
        top: 50,
        containLabel: true,
      },
      xAxis: [{
        type: 'category',
        axisLabel: {
          color: '#fff',
          fontSize: 14,
          fontFamily: 'SourceHanSansCN-Normal',
          interval: 0,
          // align: 'left',
          lineHeight: 20,
          formatter: function (value) {
            // 拼接加 \n 返回的类目项
            var ret = '';
            // 每项显示文字个数
            var maxLength = 4;
            // X轴类目项的文字个数
            var valLength = value.length;
            // 类目项需要换行的行数
            var rowN = Math.ceil(valLength / maxLength);
            if (rowN > 1) {
              for (var i = 0; i < rowN; i++) {
                // 每次截取的字符串
                var temp = '';
                // 开始截取的位置
                var start = i * maxLength;
                // 结束截取的位置
                var end = start + maxLength;
                temp = value.substring(start, end) + '\n';
                // 拼接最终的字符串
                ret += temp;
              }
              return ret;
            } else {
              return value;
            }
          },
        },
        axisLine: {
          lineStyle: {
            color: '#2E3636',
          },
        },
        axisTick: {
          show: false,
        },
        data: [
          '2018',
          '2019',
          '2020',
          '2021',
          '2022',
        ],
      }, ],
      yAxis: [{
        type: 'value',
         name: '吨',
        nameTextStyle: {
          color: '#fff',
          fontSize: 14,
          padding: [0, 56, 0, 20]
        },
        axisLabel: {
          color: '#fff',
          fontSize: 14,
          fontFamily: 'SourceHanSansCN-Normal',
        },
        axisLine: {
          lineStyle: {
            color: '#2E3636',
          },
        },
        axisTick: {
          show: false,
        },
        splitLine: {
          show: true,
          lineStyle: {
            color: '#2E3636',
          },
        },
      }, ],

      series: [
        {
          name: '委托利用处置量',
          type: 'line',
          label: {
            // 是否在柱形图上显示数字
            show: false,
            position: 'insideRight',
          }, // 设置柱状图大小
          barWidth: 7,
          itemStyle: {
            color: '#00B0EA'
          },
          data: [320, 332, 301, 334, 390, 234],
        },
        {
          name: '产生量',
          type: 'line',
          label: {
            // 是否在柱形图上显示数字
            show: false,
            position: 'insideRight',
          }, // 设置柱状图大小
          barWidth: 7,
          itemStyle: {
            color: '#00FFEE'
          },
          data: [862, 1018, 964, 1026, 1279, 124],
        },
        {
          name: '自行利用处置量',
          type: 'line',
          label: {
            // 是否在柱形图上显示数字
            show: false,
            position: 'insideRight',
          }, // 设置柱状图大小
          barWidth: 7,
          iitemStyle: {
            color: '#44D400'
          },
          data: [562, 918, 544, 726, 679, 235],
        },
        {
          name: '贮存量',
          type: 'line',
          label: {
            // 是否在柱形图上显示数字
            show: false,
            position: 'insideRight',
          }, // 设置柱状图大小
          barWidth: 7,
          itemStyle: {
            color: '#FFEC01'
          },
          data: [562, 918, 544, 726, 679, 564],
        },
      ],
    };

3.从接口接收数据进行组装代码


    var cityRiskWasteStatis = echarts.init(
      document.querySelector('#city-risk-waste-statis')
    );
    $.ajax({
      url: 'http://182.48.115.108:7070/service/serviceinterface/search/run.action?interfaceId=629617deec5ad1ac42be173892d1ba52&token=cjdbh',
      type: 'post',
      datatype: 'json',
      async: false,
      success: function (result) {
        var xArray = [];
        var series = [];
        var serienames = [];
        var colors = ['#00B0EA','#00FFEE','#44D400','#FFEC01'];
        for(var i = 0;i<result.data.length;i++){
          var item = result.data[i];
          if(xArray.indexOf(item.YEARNUMBER)==-1){
            xArray.push(item.YEARNUMBER);
          }
          if(serienames.indexOf(item.NYTYPENAME)==-1){
            serienames.push(item.NYTYPENAME);
          }
        }
        for(var j = 0;j<serienames.length;j++){
          var serie = {
            name: serienames[j],
            type: 'line',
            label: {
              // 是否在柱形图上显示数字
              show: false,
              position: 'insideRight',
            }, // 设置柱状图大小
            barWidth: 7,
            itemStyle: {
              color: colors[j]
            }
          }
          var yArray=[];
          for(var i = 0;i<result.data.length;i++){
            var item = result.data[i];
            if(item.NYTYPENAME==serienames[j]){
              yArray.push(item.CONSUMPTION);
            }
            serie.data=yArray;
          }
          series.push(serie);
        }
        console.log(series);
        console.log(xArray);
        console.log(serienames);
        var option = {
          tooltip: {
            trigger: 'axis',
          },
          legend: {
            width: 392,
            top: 7,
            icon: 'rec1t',
            itemHeight: 10,
            itemWidth: 10,
            // 设置间距
            itemGap: 17,
            textStyle: {
              color: '#fff',
              fontSize: 14,
            },
            data: serienames
          },
          grid: {
            left: 0,
            right: 0,
            bottom: 18,
            top: 50,
            containLabel: true,
          },
          xAxis: [{
            type: 'category',
            axisLabel: {
              color: '#fff',
              fontSize: 14,
              fontFamily: 'SourceHanSansCN-Normal',
              interval: 0,
              // align: 'left',
              lineHeight: 20,
              formatter: function (value) {
                // 拼接加 \n 返回的类目项
                var ret = '';
                // 每项显示文字个数
                var maxLength = 4;
                // X轴类目项的文字个数
                var valLength = value.length;
                // 类目项需要换行的行数
                var rowN = Math.ceil(valLength / maxLength);
                if (rowN > 1) {
                  for (var i = 0; i < rowN; i++) {
                    // 每次截取的字符串
                    var temp = '';
                    // 开始截取的位置
                    var start = i * maxLength;
                    // 结束截取的位置
                    var end = start + maxLength;
                    temp = value.substring(start, end) + '\n';
                    // 拼接最终的字符串
                    ret += temp;
                  }
                  return ret;
                } else {
                  return value;
                }
              },
            },
            axisLine: {
              lineStyle: {
                color: '#2E3636',
              },
            },
            axisTick: {
              show: false,
            },
            data: xArray,
          }, ],
          yAxis: [{
            type: 'value',
            name: '吨',
            nameTextStyle: {
              color: '#fff',
              fontSize: 14,
              padding: [0, 56, 0, 20]
            },
            axisLabel: {
              color: '#fff',
              fontSize: 14,
              fontFamily: 'SourceHanSansCN-Normal',
            },
            axisLine: {
              lineStyle: {
                color: '#2E3636',
              },
            },
            axisTick: {
              show: false,
            },
            splitLine: {
              show: true,
              lineStyle: {
                color: '#2E3636',
              },
            },
          }, ],

          series: series,
        };
        cityRiskWasteStatis.setOption(option);
        window.addEventListener('resize', function () {
          cityRiskWasteStatis.resize();
        });
      }
    });
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Echarts是一款基于JavaScript的开源可视化库,可以通过它来创建各种图表。当我们需要从数据库中获取数据来展示在图表上时,可以采取以下步骤: 1. 连接数据库:首先,我们需要通过合适的方式连接到数据库。常见的数据库包括MySQL、Oracle、MongoDB等。可以使用相应的数据库连接工具,或者通过编程语言提供的库来连接数据库。 2. 查询数据:连接到数据库后,我们可以使用SQL语句或其他查询方式来获取需要的数据。可以根据具体需求编写相应的查询语句,根据数据表的结构和关系进行查询和筛选。 3. 处理数据:获取到数据后,我们可能需要对数据进行一些处理和转换,以便适配Echarts数据格式。例如,我们可能需要将数据库查询结果转换为JSON格式的数据,或者对日期数据进行格式化处理。 4. 传递数据Echarts:处理完数据后,我们可以将数据传递给Echarts进行图表展示。可以使用Echarts提供的API方法来将数据传递给相应的图表类型,例如柱状图、折线图等。 5. 渲染图表:一般来说,我们需要在网页中创建一个容器,然后使用Echarts提供的方法将图表渲染到容器中。可以通过指定容器的ID,将图表渲染到相应的位置上。 通过以上步骤,我们可以从数据库中获取数据,并通过Echarts来展示在图表上。这样可以更直观地展示数据,提供给用户更好的交互和分析体验。 ### 回答2: ECharts是一款开源的数据可视化库,可以通过JavaScript编写和展示各种图表。要从数据库中获取数据并将其传递给ECharts,需要以下步骤: 1. 连接数据库:首先,需要使用合适的数据库连接工具来连接数据库。常见的数据库类型包括MySQL、Oracle、SQL Server等。连接数据库需要提供数据库地址、用户名、密码等必要的凭证。 2. 查询数据:一旦连接成功,可以编写SQL查询语句来从数据库中检索所需的数据。查询语句应该指定要获取的字段和表,以及任何必要的条件。例如,可以使用SELECT语句来选择特定字段的值以及满足某些条件的记录。 3. 处理数据:一旦从数据库中获取到数据,可以将其存储在一个合适的数据结构中,例如数组或对象。可以使用服务器端的脚本语言(如PHP、Python)或客户端的JavaScript进行数据处理,筛选和转换数据,以便ECharts可以更轻松地读取和使用这些数据。 4. 传递数据ECharts:一旦数据准备好,可以将其传递给ECharts的实例。使用ECharts的API方法,可以将数据传递给相应的图表组件,并在前端页面上展示。 总结:使用ECharts数据库获取数据需要进行数据库连接、查询数据数据处理、数据传递等步骤。这需要通过合适的数据库连接工具连接数据库,编写查询语句来选择和检索所需的数据,对数据进行处理和转换,最后将数据传递给ECharts实例,以便创建和展示相应的图表。 ### 回答3: echarts是一款基于JavaScript数据可视化库,可以通过从数据库获取数据来生成图表。在使用echarts时,我们可以通过以下步骤来从数据库获取数据: 1. 连接数据库:首先,我们需要使用数据库连接工具,比如MySQL、Oracle或者MongoDB等,来连接数据库,以便能够访问和操作数据库中的数据。 2. 查询数据:一旦成功连接到数据库,我们可以使用SQL语句或者其他数据库查询命令来从数据库中获取所需的数据。根据数据的类型和结构,我们可以编写相应的查询语句来获取特定的数据。 3. 数据处理:从数据库中获取到数据后,我们可以对数据进行一些处理,比如排序、聚合、过滤等,以便满足生成图表所需要的数据格式和要求。 4. 数据转换:将获取到的数据转换为echarts所需要的数据格式。echarts通常接受JSON格式的数据,可以通过将数据库中的数据转换为JSON格式,或者利用服务器端脚本语言如PHP、Python等来处理转换。 5. 生成图表:一旦完成数据的处理和转换,我们可以使用echarts提供的API,以及HTML和JavaScript等技术,来生成具体的图表。可以根据需要选择不同类型的图表,比如折线图、柱状图、饼图等,也可以进行定制化的设置和样式调整。 总之,使用echarts数据库获取数据可以通过连接数据库、查询数据数据处理、数据转换和生成图表等步骤来完成。这样我们可以将数据库中的数据可视化展示出来,方便用户更直观地理解和分析数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值