2012-12-26 27 views
3

我現在正在修改一個highchart Graph。以前,我們用關聯日期繪製了一個圖上的點。該圖表還有maxZoom:14 * 24 * 3600000允許用戶進一步鑽取。Highchart Zoom和帶有字符串陣列的X軸用於類別

現在我將日期轉換爲Year + Q#。所以現在,而不是2011年9月,它將在X軸上展示2011年第3季度。

但現在我有兩個問題。

1)首先它不允許我縮放,因爲我將一個字符串數組作爲categories傳入到圖表中。即使X軸是字符串,我仍希望它能夠縮放。據我所知,縮放雖然使用秒來在X軸上的日期之間進行插值。

2)第二,當我突出顯示它們時,圖表上的數據點表示Invalid date,儘管我已將圖表指定爲linear。有沒有一種方法可以添加明確的值,以便在此處突出顯示(即將其轉換爲年份季度之前的實際日期值?)

有沒有辦法解決這些問題?

相關代碼:

plotData=[]; 
var month = window.countryData.scorecards[i].month - 1; 
var year = window.countryData.scorecards[i].year; 
categoriesQuarters.push(year + " Q" + parseInt(month/3 + 1)); 
plotData.push(value); //Value is either a number or a string, depending on the graph. 
.... 
xAxis: { 
     type: 'linear', 
     categories: categoriesQuarters 
     }, 
series: [{ 
       name: graphData.country, 
       data: plotData 
      }] 

回答

1

使用標籤格式去做。

xAxis: { 
    labels: { 
     formatter: function() { 
      var date = Highcharts.dateFormat('%Y-%m', this.value); 
      date = date.split('-'); 
      return date[0] + " Q" + parseInt(date[1])/3 + 1; 
     } 
    } 
} 

demo

+0

完美!謝謝! – LyricalPanda

+0

@LyricalPanda不客氣:) –