2014-01-30 57 views
1

在決定在這裏提出這個問題之前,我已經使用了google搜索堆棧溢出,因爲雖然有些問題看起來很相似,但沒有任何解決方案適用於我。Highcharts X-Axis Issue

我已經對數據進行了分類,有時候範圍很廣,例如1881 - 2012,並且希望動態計算並將這個範圍劃分爲x軸上的11個點,這是我在沒有啓用縮放的情況下可以顯示的空間。如果數據來自1881 - 2012年,那麼我希望它能夠在1881年,1901年,1921年,1941年中顯示(不完全計算).....如果它從1958年至2013年,然後是1958年,1968年,1978年...

xAxis: { 
      categories: range(start_year,end_year), 
      tickmarkPlacement: "on", 
      tickInterval: Math.ceil(range(start_year,end_year).length/11), 
     }, 

....... 

function range(start_year,end_year) 
    { 
    var years = []; 

    for(var i = start_year;i<=end_year;i++) 
    { 
     years.push(i); 
    } 
    return years; 
    } 

此代碼所做的只是跳過某些年份的標籤,但仍會繪製導致x軸重疊年份的圖形上的點。

任何這方面的線索將不勝感激。

這裏是說明我的困境http://jsfiddle.net/YUPzk/4/

+0

你在談論建立座標軸標籤,或者你想要聚合是貝因數據同樣的挑戰g繪製? – jlbriggs

+0

我需要一個函數來選擇等於間隔點在查詢的憤怒顯示所有數據,這將意味着跳過幾年。最重要的是顯示選定年份的趨勢。實際上,當您選擇12年以上的範圍時,X軸上的數據標籤重疊使得它們難以辨認 –

+0

因此,您是在談論軸標籤,而不是數據本身?默認情況下,Highcharts會在大多數情況下選擇合適的時間間隔,如果您只是簡單地讓它(即不使用類別,並且不指定tickInterval)。如果你設置了一個小提琴,它會更容易幫助。 – jlbriggs

回答

1

您可以使用tickPositioner和準備自己的計算功能的小提琴。下面
JavaScript的是如何可以做到這一點了一個例子:
Highcharts.chart('container', { title: { text: 'Custom tick positions' }, subtitle: { text: 'through axis.tickPositions and axis.tickPositioner' }, xAxis: { tickPositions: [0, 1, 2, 4, 8] }, yAxis: { tickPositioner: function () { var positions = [], tick = Math.floor(this.dataMin), increment = Math.ceil((this.dataMax - this.dataMin)/6); if (this.dataMax !== null && this.dataMin !== null) { for (tick; tick - increment <= this.dataMax; tick += increment) { positions.push(tick); } } return positions; } }, series: [{ data: [ [0, 1],[1, 3],[2, 2],[4, 4],[8, 3] ] }] });

The above demo code can be found at this jsfiddle

+0

你會友好提供和示例? –

+0

在相關鏈接中,附有演示;) –

+0

我一直在那裏,但演示並沒有真正做我需要的東西。我需要的是例如幾年間隔10年而不會在這些年間留下點空間。謝謝你試圖幫助:-) –

0

對於別人奮力完成這件事,這裏是你需要什麼,因爲我沒有,沒有答案,谷歌搜索的很多的發現人們體驗

Highcharts ; x-axis scaling issue