2012-03-30 88 views
1

我有連續心臟跳動的時間數據(以毫秒爲單位),我正在嘗試製作它們的動態圖表。所以在XAxis上,我的XDate變量增加了.AddMilliseconds(heart_beat_time),YAxis增加了heart_beat_time更改ZedGraph中的軸類型

當我使用AxisType.Date它很不錯。我可以更改Min,Max和其他相關值,但是當我更改爲AxisType.DateAsOrdinal時,我看不到點或標籤。在一些調試過程中,Zedgraph已經顯示了點和標籤,但是連續點之間有很大的差距。如何控制DateAsOrdinal Min,Max,MajorStep等?有一個答案Format DateAsOrdinal xAxis labels in ZedGraph,但它不適合我。

有兩個原因,我想,使其工作:

  1. 序似乎更快(因爲我得到了近10萬點)

  2. 隨着AxisType.Date當我滾動圖表自動它不顯示在標籤蜱

我的代碼:

myPane.XAxis.Type = AxisType.DateAsOrdinal; 
myPane.XAxis.Scale.MajorStepAuto = false; 
myPane.XAxis.Scale.MinorStepAuto = false; 
myPane.XAxis.Scale.MajorUnit = DateUnit.Minute; 
myPane.XAxis.Scale.MinorUnit = DateUnit.Minute; 
myPane.XAxis.Scale.Format = "HH:mm:ss"; 
myPane.XAxis.Scale.Min = Min; 
myPane.XAxis.Scale.Max = Max; 
myPane.XAxis.Scale.MinorStep = minor; 
myPane.XAxis.Scale.MajorStep = major; 
myPane.XAxis.Scale.BaseTic = new XDate(1999, 1, 1, 0, 0, 0, 0); 
myPane.YAxis.Scale.Min = min_rr; 
myPane.YAxis.Scale.Max = max_rr; 

其中

int min_rr = 100; 
int max_rr = 2500; 
XDate Min = new XDate(1999, 1, 1, 0, 0, 0, 0); 
XDate Max = new XDate(1999, 1, 1, 1, 0, 0, 0); 
int minor = 5; 
int major = 10; 

回答

0

使用AxisType.DateAsOrdinal當我有同樣的問題(在X軸沒有圖形或標籤)。

我解決了通過省略代碼行myPane.XAxis.Scale.Min=???Max=???。 這給了我一個很好的圖表沒有差距。

但是現在我在我的MouseMoveEvent中遇到了MousePositionValues函數的問題。

+0

我想我已經解決了這個問題。 – levy 2012-04-14 14:54:38

+0

**對不起,在線時間限制:/ ** 'DateAsOrdinal'保留屏幕上的點數,而不是按照Min和Max的時間段 所以你必須設置'Min = 0 '和'Max = numberOfPoints'。 「MajorStep」和「MinorStep」也是一樣 - 它是抽搐之間的點數。 我認爲如果您不知道您要放入圖表中的數據會導致問題 - 它會因規模而變得不可讀。 – levy 2012-04-14 15:00:20