2016-11-12 126 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) 
     } 
    });