【问题标题】:Json data echartsJson数据图表
【发布时间】:2019-01-10 12:42:49
【问题描述】:

在我的网络应用程序中,我有一个 echart 图表和一个返回的 URL

[ { "category": "2019-01-06 21:22:56", "value1": 0.5 }, { 
"category": "2019-01-06 21:24:57", "value1": 0.5 }, { "category": 
"2019-01-08 22:09:52", "value1": 533 }, { "category": "2019-01-08 
22:10:45", "value1": -100 }, { "category": "2019-01-08 22:11:35", 
"value1": 216.5 }, { "category": "2019-01-08 22:12:25", "value1": 
-221.5 }, { "category": "2019-01-08 22:13:16", "value1": 226 } ]

现在我想在 x 轴上显示“类别”值,在 y 轴上显示“value1”值。

图表代码如下:

var dataArr = [];
        $.get('https://myurl.com/backend/data.php', {}, 
function(response) {
            dataArr = JSON.parse(response);
            initEchart();
        });

var myChart = echarts.init(document.getElementById('main'));

function initEchart(){
            // specify chart configuration item and data
            var option = {
                title: {
                    text: 'ECharts entry example'
                },
                tooltip: {},
                legend: {
                    data:['Sales']
                },
                xAxis: {
                    data: dataArr.category 
                },
                yAxis: {},
                series: [{
                    name: 'Sales',
                    type: 'line',
                    data: dataArr.value1
                }]
            };

            // use configuration item and data specified to show 
chart
            myChart.setOption(option);
        }
}

【问题讨论】:

    标签: jquery json ajax echarts


    【解决方案1】:

    你需要使用这样的东西

    function(response) {
            dataArr = JSON.parse(response);
            initEchart();
            var category = [];
            var value = [];
            for(var i = 0; i < dataArr.length; i++) {
               var item = dataArr[i];   
               category.push("\""+item[0]+"\"");
               value.push("\""+item[1]+"\"");
           }
           category= '['+category+']';
           var result_category = category.toString();
    
           value= '['+value+']';
           var result_value = value.toString();
    
    
          //and in chart use like this 
    
           xAxis: {
                    data:  JSON.parse(result_category)
                },
            series: [{
                        name: 'Sales',
                        type: 'line',
                        data: JSON.parse(result_value)
                    }]
    });
    

    【讨论】:

      【解决方案2】:
      dataArr[0].category
      dataArr[0].value1
      
      dataArr[1].category
      dataArr[1].value1
      

      这就是您在 AJAX 调用中的数组的样子。

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <title>ECharts</title>
          <!-- including ECharts file -->
          <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js'></script>
          <script src="echarts.js"></script>
      </head>
      <body>
          <!-- prepare a DOM container with width and height -->
          <div id="main" style="width: 600px;height:400px;"></div>
          <script>
          var dataArr = [];
                  $.get('https://myurl.com/backend/data.php', {}, 
          function(response) {
                      dataArr = JSON.parse(response);
                      initEchart();
                  });
      
          var myChart = echarts.init(document.getElementById('main'));
      
          function initEchart(){
                      // specify chart configuration item and data
                      var option = {
                          title: {
                              text: 'ECharts entry example'
                          },
                          tooltip: {},
                          legend: {
                              data:['Sales']
                          },
                          xAxis: {
                              type: 'category',
                              data: [dataArr[0].category, dataArr[1].category, dataArr[2].category, dataArr[3].category, dataArr[4].category, dataArr[5].category, dataArr[6].category]                        
                          },
                          yAxis: {},
                          series: [{
                              name: 'Sales',
                              type: 'line',
                              data: [dataArr[0].value1, dataArr[1].value1, dataArr[2].value1, dataArr[3].value1, dataArr[4].value1, dataArr[5].value1, dataArr[6].value1]                        
                          }]
                      };
      
                      myChart.setOption(option);
                  }    
          </script>
      </body>
      </html>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-13
        相关资源
        最近更新 更多