2012-04-27 60 views
1

我有兩個垂直條形圖(使用jqPlot創建)在我的HTML頁面。jqPlot - 如何使垂直線條放大,因爲我放大

它們類似於下面的例子(除礦採用代替線柱):

http://www.assembla.com/code/MUN/subversion/node/blob/js/jqplot/examples/zoomProxy.html?rev=985

在上面的例子中,底部圖表用於控制頂部之一。礦山工作方式相同。

通常我的兩個圖表都包含超過200個x軸條目(它們傳遞相同的數據集),每個條的寬度設置爲6px。

問題是,當我放大時,酒吧保持薄(即6px)。我想實現的就是讓酒吧加寬我放大我試過設置barWidth爲null如下:

// BarRenderer. 
rendererOptions : { 
    ... 
    barWidth: null, // width of the bars. null to calculate automatically. 
    ... 
} 

然而,這似乎並沒有做什麼,它說。

有沒有人有一個很好的解決這個問題?

+0

您是否嘗試直接設置寬度?如果設置爲null不起作用,那麼我假設你可以根據縮放級別縮放它們,假設第一個開始寬度(例如6,如你的情況)。 – Boro 2012-04-27 15:22:06

+0

@Boro我的兩塊地塊都設置爲900px寬。如果我可以在用戶執行縮放時查找頂部繪圖中將顯示多少條線條,那麼我應該能夠根據畫布大小計算每個線條的寬度。所以我看到類似這樣的東西會工作:捕捉縮放事件→找到要繪製的條數→計算每個條寬度→更新jqPlot選項以使用這個新的條寬→重繪。我會做更多的調查。 – jpen 2012-04-28 09:54:17

+0

你的想法是對的。這是要走的路。我只擔心你不能避免改變腳本本身的麻煩,因爲我昨天無法找到縮放事件。我認爲所有東西都只是畫了,正如我們已經在http://stackoverflow.com/q/10334135/613495中討論過的那樣。如果你添加了被稱爲例如在這個'drawZoomBox()''方法的開始和結尾,你應該沒問題,如果你得到滿意的解決方案,請分享一下。我認爲縮放事件(和其他)是'jqPlot'傢伙在未來應該考慮添加的重要事情。 – Boro 2012-04-28 10:21:01

回答

0

作爲臨時解決方法,您可以嘗試在issue 513中建議的修改。 (pull request被拒絕,因爲應該有更優化的方式來做到這一點。)

+0

感謝布魯諾我已經嘗試了兩種修改,但不幸的是,他們讓我的垂直酒吧太寬(即使沒有進行縮放)。 – jpen 2012-05-03 08:15:17

0

我必須說我沒有解決這個問題。但是,如果您設置constrainZoomTo = 'y',用戶可以看到正在發生的事情,也就是說他只會放大情節的y部分,可能會有一些幫助。

其他解決方案是你自己寫這個行爲。但說實話,我不知道從哪裏開始。

0

即使可以使用條形圖進行縮放,無論您放大多深,條寬將相同,縮放對於折線圖而言特別意味着滿。

+0

是的,這是真的。但在我的情況下,我的水平線(使用canvasOverlay)放在我的垂直條上,如果每個條寬一點(例如15px),它可以更容易地看到線條和酒吧相交現在很難看到 – jpen 2012-05-02 12:45:27