2016-02-09 53 views
1

我有一個要求,我必須在X軸上顯示自定義點而不是日期值。導航器上也需要顯示相同的自定義數據點。在下面的Js小提琴中,我將數據(Per13/2016等)轉換爲相應的日期值,然後使用轉換後的日期值綁定圖表。 以下是JS小提琴的鏈接: - Fiddle link股票在X軸上自定義點高圖表

在Js小提琴中,我在x軸上顯示Per1,Per2等,同樣也必須在導航器上顯示。 現在我面臨着導航器的問題,當我使用滑塊更改範圍時,x軸標籤更改但不是根據所選範圍。同時工具提示格式也發生了變化。

你可以請讓我知道如何處理這種情況和最好的方式來做同樣的事情。

 //few code lines to post fiddle link 
      xAxis: { 
        labels: { 
         formatter: function() { 
          if(fiscal13){ 
          var perDate = new Date(this.value); 
          return 'Per' + (perDate.getMonth() + 1); 
          } 

       } 
        } 
       } 
+0

添加該> var s = Highcharts.dateFormat('%e%b%Y', new Date(this.x));爲tooltip,我會更新解決方案爲nagitor以及http://jsfiddle.net/Nishith/qneuh4Ld/1/ –

+0

我需要顯示每1,每2等成本和使用工具提示,但問題是當滑塊移動工具提示文本更改時,圖表上的數據也不會按照範圍選擇顯示。 – user3562919

回答

0

我不知道我是否正確,但我認爲你是過度的。

讓我們保留原始數據,所以刪除fiscal13Data.Data.forEach(function(item) { .. });函數。而在創建數據,用簡單點的x值的指數:

var cost = [], 
    usage = [], 
    dataLength = fiscal13Data.Data.length 
i = 0; 
for (i; i < dataLength; i += 1) { 
    // need to sum costs 
    cost.push([ 
    i, // the index 
    fiscal13Data.Data[i]['Cost'] // cost 
    ]); 
    usage.push([ 
    i, // the index 
    fiscal13Data.Data[i]['Usage'] // Usage 
    ]); 
} 

現在你可以到「Per13/2016」的字符串以簡單的方式在X軸標籤的格式化:

var str = fiscal13Data.Data[this.value].Date; 

在提示格式化,它幾乎是完全一樣的:

var str = fiscal13Data.Data[this.x].Date; 

這裏是工作演示:http://jsfiddle.net/qneuh4Ld/3/

注意:你的數據看起來有點奇怪 - 你不想先排序嗎?此外,每次約會都有兩次(例如「Per13/2016」 - 一次用於「水」,一次用於「電」)。