2013-06-13 47 views
0

我試圖顯示聽力圖,但我面臨以下困難:聽力圖與Highcharts

  • Y軸有以下幾類125,250,500,1000,2000,4000,8000。他們都需要距離彼此相等。換句話說,儘管有這些值,但間隔必須相等。這不是一個真正的問題,因爲我只能使用類別:[......]和數據:[...],它工作得很好。
  • 問題是,還有750 1500 3000 6000的值,但它們必須顯示在鄰近點之間距離的2/3處,這違背了數學定律。

這是應該的樣子: Sample

這是我走到這一步, Mine

回答

1

我會

  • 多個X的組合做軸
  • 類別
  • tickPositions
  • 軸標籤格式

這裏舉例:

http://jsfiddle.net/jlbriggs/D2TPh/

labels: { 
    formatter:function() { 
    var v = this.value; 
    if (v == 2.66) return '750'; 
    else if (v == 3.66) return '1.5k'; 
    else if (v == 4.66) return '3k'; 
    else if (v == 5.66) return '6k'; 
    } 
} 
+0

沒錯,但代替的,如果的,我寧願用映射: VAR地圖= \t { \t \t「1.5K」:1 \t \t「3K」:2 \t} return map [v]; 很多謝謝 – k9m

+0

其實我現在不太確定,因爲我可以看到它基本上是一個雙軸,但我也有1.5K 3K 6K值。我想我需要結合你和塞巴斯蒂安的解決方案...... – k9m

+0

這兩個軸是相連的。因此,如果您需要繪製1.5值,則只需使用3.66作爲x值,依此類推。 – jlbriggs

0

看起來像你想有一個二進制數Y軸(基數爲2)。我知道Highcharts支持基地10 logarithmic axes,但通過快速搜索沒有找到如何使用基地2

什麼你可以嘗試是:

  • 定義你的Y數據點爲log2(Y),因此它們均勻間隔

  • 使用axis formatter將它們格式化爲在Y軸上顯示爲pow(2,y)以顯示原始值。

+0

謝謝,我會考慮格式化 – k9m

0

在使用categories的情況下,您應該實現滴答之間的相同距離。

http://jsfiddle.net/3K86L/

但你也可以使用tickPostitions或使用tickPositioner

http://api.highcharts.com/highcharts#xAxis.tickPositioner

+0

第一部分工作正常,沒有問題。滴答器似乎是要走的路。我想我只需要將字符串值映射到實際的整數位置,就是這樣。我覺得這個職位將提供解決方案,非常感謝 – k9m