2016-11-12 108 views
1

我使用Highcharts库开发图表,并在第一个工作正常,但是当我回来运行应用程序时,我发现所有图表都是黑色图像,我不知道为什么?Highcharts给我黑色图像

我的jsp:

<html> 
<head> 
<script src="<c:url value='/assets/js/jquery.js' />"></script> 
<script src="<c:url value='/assets/js/highstock.js' />"></script> 
<script src="<c:url value='/assets/js/highcharts.js' />"></script> 
<script src="<c:url value='/assets/js/highmaps.js' />"></script> 
<script src="<c:url value='/assets/js/exporting.js' />"></script> 
<script src="http://highcharts.github.io/export-csv/export-csv.js"> 
</head> 
<body> 
<div id="impressionChart" style="height: 400px"></div> 

<script type="text/javascript"> 
     var campaignId = $('#campaignId').val(); 
     var processed_json = []; 
     var parsedJson; 
     var myArray = []; 
     var url = "/ADVoice/advertiser/campaign/performance/campaignImpression/" 
       + campaignId; 
     $ 
       .ajax({ 
        url : url, 
        datatype : "json", 
        type : "GET", 
        async : false, 
        success : function(data) { 
         // alert(data); 
         parsedJson = JSON.stringify(data); 
         alert(parsedJson); 
         var jsonArray = JSON.parse(parsedJson); 
         // alert(jsonArray['campaign_data'].length); 
         for (i = 0; i < jsonArray['campaign_data'].length; i++) { 
          myArray[i] = []; 
          myArray[i][0] = Date 
            .parse(jsonArray['campaign_data'][i].key); 
          myArray[i][1] = parseInt(jsonArray['campaign_data'][i].value); 

         } 
         // alert(myArray); 
        }, 
        error : function() { 
         alert("error"); 
        } 
       }); 
     // draw chart 
     Highcharts.setOptions({ 
      global : { 
       useUTC : false 
      } 
     }); 
     $('#impressionChart').highcharts({ 
      chart : { 
       type : "column" 
      }, 
      title : { 
       text : "Campaign Impression" 
      }, 
      xAxis : { 
       type : 'datetime', 
       labels : { 
        formatter : function() { 
         return Highcharts.dateFormat('%a %d %b', this.value); 
        } 
       } 
      }, 
      yAxis : { 
       title : { 
        text : "Number of impressions" 
       } 
      }, 
      series : [ { 
       name : "No.Impressions:", 
       data : myArray, 
       pointStart : Date.parse(myArray[0][0]) 
      // pointInterval: 24 * 3600 * 1000 // one day 
      } ], 
      exporting : { 
       csv : { 
        dateFormat : '%Y-%m-%d' 
       } 
      } 
     }); 
    </script> 
</body>  
</html> 
+0

你能张贴的JSON你获得使用Ajax请求编辑你的问题?你当然可以从'alert'复制它。此外,请检查控制台是否有任何错误,并在有错误的情况下发布。 –

+0

parsedJson = {“campaign_data”:[{“value”:450000,“key”:“11/02/2015”},{“value”:54000,“key”:“11/03/2015”},{ “值”:540000, “键”: “2015年11月4日”},{ “值”:54000, “键”: “2015年11月5日”},{ “值”:540000, “密钥”: “2015年11月6日”},{ “值”:540000, “键”: “2015年11月7日”},{ “值” 450000 “密钥”: “2015年11月8日”},{ “value”:54000,“key”:“11/09/2015”},{“value”:540000,“key”:“11/10/2015”}]} –

+0

这个错误出现在CONSOL: highstock.js:10未捕获错误:Highcharts错误#16:www.highcharts.com/errors/16 –

回答

0

正如你将在这个CodePen看到的,我通过你得到的结果“改为”你的Ajax功能。

我认为你的Ajax请求是确定的,因为你获得这个结果,我根本无法在CodePen中完成。我和你一样使用了for loop

关于控制台中的错误,the link you provided非常明确。它说你打电话的HightCharts功能包含在highstock库中。

<script src="<c:url value='/assets/js/jquery.js' />"></script> 
<script src="<c:url value='/assets/js/highstock.js' />"></script> 
<!-- script src="<c:url value='/assets/js/highcharts.js' />"></script --> 
<script src="<c:url value='/assets/js/highmaps.js' />"></script> 
<script src="<c:url value='/assets/js/exporting.js' />"></script> 
<script src="http://highcharts.github.io/export-csv/export-csv.js"> 

只是像上面注释掉highcharts.js。

0

如果有人仍然有这个问题,我可以通过使用aRGB值指定图表的所有颜色来解决问题。

例如,在ASP.NET中,这样的代码:

chart.SetSeries(new[] 
    { 
     new Series { 
      Name = "Average", 
      Data = GetAverageData(), 
      Color = Color.Crimson 
     }, 
     new Series { 
      Name = "Order", 
      Data = GetOrderData(), 
      Color = Color.RoyalBlue 
     } 

    }); 

转变为:

chart.SetSeries(new[] 
    { 
     new Series { 
      Name = "Average", 
      Data = GetAverageData(), 
      Color = Color.FromArgb(255, 220, 20, 60) 
     }, 
     new Series { 
      Name = "Order", 
      Data = GetOrderData(), 
      Color = Color.FromArgb(255, 65, 105, 225) 
     } 
    });