2014-09-19 148 views
0
與軸交叉在0變焦

[編輯:我提交的問題有關此on the OxyPlot GitHub]麻煩Oxyplot

我有一個WPF窗口一些FunctionSeries一個OxyPlot笛卡兒圖表。當我爲兩個座標軸設置PositionAtZeroCrossing爲真時,出現幾個問題:

1)標題顯示不正確,甚至沒有出現。改變TitlePosition的值似乎沒有改變任何東西。

2)當放大或周圍移動中,x軸推移圖形區域外,如下所示:當PositionAtZeroCrossing沒有被設置爲真 screenshot

兩個問題不會出現。

我想知道是否有正確的方法來解決這些問題,或解決方法(我不熟悉OxyPlot)。

//My PlotModel is binded to the Model of a PlotView in my WPF control. 

//FonctionQlimPlim, maxX, maxY, minX and maxY are defined elsewhere 
PlotModel plot = new PlotModel() 
{ 
    PlotType = PlotType.Cartesian 
}; 

plot.Axes.Add(new LinearAxis() 
{ 
    Position = AxisPosition.Bottom, 
    Minimum = minX, 
    Maximum = maxX, 
    Title = "Q (kVAR)", 
    PositionAtZeroCrossing = true 
}); 

plot.Axes.Add(new LinearAxis() 
{ 
    Position = AxisPosition.Left, 
    Minimum = minY, 
    Maximum = maxY, 
    Title = "P (kW)", 
    PositionAtZeroCrossing = true 
}); 

//One of the FunctionSeries 
var f = FonctionQlimPlim; 
f.Color = OxyColors.Red; 
plot.Series.Add(f); 

回答

1

這似乎是使用該屬性是沿着下面的內容:

讓我們假設你的輸入是x(水平),y(垂直)圖。 假設您的x值從1變爲20,我們假設您的y值將是-1010之間的隨機數。

所以,我們期待看到一個20點隨機跳動的圖形。

當您設置軸PositionAtZeroCrossing時,您告訴Oxyplot將它放在交叉點所在的位置。這裏有一些截圖幫助你:Link to bigger image

Screenshots

所以,這取決於你的地方是零,它可能是很遠很遠的可視屏幕之外,因此它似乎不應該存在。

說實話,我沒有看到把它們設置爲真實的點,但它可能適合我的一些需求。

+0

謝謝。我試圖做的是最初讓我的Y軸位於圖形中心的x = 0處(最小/最大值是爲此計算的),如果不是針對這些問題,「PositionAtZeroCrossing」會很好地完成這個技巧。 當爲Y軸激活該選項時,在y = 0時,X軸在圖的外部和2d線與Y軸相交。這是第2條線和Y軸,當在圖的外部用0縮放時,Y軸超出圖。在我的情況下,這非常明顯,因爲圖形不是窗口中唯一的元素。看起來越野車,我可能不得不放棄0橫軸。 – cmousset 2014-09-19 13:00:07

+0

我還注意到,在你的例子中,當'PositionAtZeroCrossing'爲true時,Y標題也不會出現。有關爲什麼或如何放置它的任何想法? – cmousset 2014-09-19 13:02:32

+0

不......真的不知道...你可能想要放棄開發者的一條線,或者看看源代碼:) – Noctis 2014-09-19 13:51:11