2013-04-14 27 views
2

在使用ZedGraph在第一張圖片中顯示的三個GraphPane上顯示六個圖形時,所有圖形都同步。但是,當我嘗試顯示第一個窗格的日期時,該圖不同步,如第二張圖所示。重要的是,所有六個圖形保持同步,以便用戶理解整個圖表。如何在ZedGraph中同步三個GraphPane?

我試過XAxis.Type = AxisType.Date,如tmwoodshere所示,並且能夠顯示沿X軸的日期。沿x軸的日期時間可以在幾分鐘內/秒,從9:00 AM至4:00 PM說,也可能是在天說的形式28/1/2009至25/11/2012

Picture-1

Picture-2

+0

您可以在所有三個圖表上使用相同的縮放比例嗎?我的意思是這樣的日期顯示在所有三個。我唯一的想法是讓後兩個圖表的最大值爲530(我在猜測它們被截斷的位置),因此數據在整個圖表中延伸。 – tmwoods

+0

@tmwoods 說我有3個陣列 Xaxis [] = {1,2,3,4,5,6,7,8,...} Yaxis [] = {40,42,45,50, 39,38,41 ...} Date [] = {10-Apr,11-Apr,12-Apr,13-Apr,14-Apr,15-Apr ...} 我可以繪製圖Xaxis和Yaxis數組中的值,並僅顯示Date軸陣列在X軸對應點的日期。我想用date數組的內容來顯示和繪製使用X和Y數組的值。 – Martin

+1

經過一段時間的研究後,我相信你不能添加第二個'X軸';你只能用'Y軸'來做到這一點。我認爲唯一的解決辦法是黑客攻擊;您必須通過設置「最大」值來切斷後面兩個圖表,以便圖表延伸;我認爲這可能是唯一的方法。如果你解釋一下你想要做的更多,也許我們可以通過頭腦風暴的另一種解決方案:) – tmwoods

回答

1

好吧,我想我明白了。嘗試添加這對您的代碼:

pane1.Chart.Rect = new RectangleF (pane2.Chart.Rect.X, 
      pane2.Chart.Rect.Y, 
      pane2.Chart.Rect.Width, 
      pane2.Chart.Rect.Height); 

我一直在偷看周圍,Zedgraph支持一種叫做Graph Align,但我不能找到它的源的任何地方。我發現的最接近的是here;看看最底層的例子。它描述瞭如何垂直對齊多個變化大小的圖表。但我沒有測試過它。

1

接受的答案是正確的,工作的,但是,ZedGraph有內置的功能,使所有軸同步:

zgc.IsSynchronizeXAxes = true; // This keeps X axes min and max in sync 
zgc.IsSynchronizeYAxes = true; // This keeps Y axes min and max in sync 
zgc.MasterPane.IsCommonScaleFactor = true // This will ensure a common Scale is applied to all graphPanes axes. 

這裏是一個IsCommonScaleFactorIsSynchronizeXAxes or IsSynchronizeYAxes樣品。

+0

試過這個,不幸的是圖表仍然不同步... – Martin

+0

哎呀,它看起來像缺少東西。我編輯了我的答案。 – Larry