2012-01-03 59 views
1

我有一個JFreeChart TimeSeries圖表,它有2個數據項。
我需要標記點。
例如我需要它在特定時間顯示什麼是行的值(而實際上沒有任何值和JFreeChart創建線)。
例子:JFreeChart TimeSeries圖上的標記點

TimeSeries t=new TimeSeries("Test",Second.class); 
Dataset.addSeries(t); 

Calendar C=Calendar.getInstance(); 
t.add(new Second(C.getTime()), 100); 

C.setTimeInMillis(C.setTimeInMillis+10*60*60*1000); 
t.add(new Second(C.getTime()),200); 


// Now I want Something like this psudo code 
C.setTimeInMillis(C.setTimeInMillis-5*60*60*1000); 
t.mark(new Second(C.getTime())); 

我如何通過自己的域值標記上的一系列點(所以範圍值應自動計算)?

由於

回答

2

一種方便的方式來顯示的內插值是爲了使軸跟蹤的特徵,如本example

chartPanel.setHorizontalAxisTrace(true); 
chartPanel.setVerticalAxisTrace(true); 

附錄:另一種方法是在interpolated值添加到數據集並抑制其Shape的顯示,如圖所示here。 (無標記)的值將可用於工具提示生成器,標籤生成器,圖表鼠標監聽器等。

+0

嗨,謝謝,但這隻有幫助找到價值的軸本身,而我需要確切的價值在一些(確切3)指向兩點之間。 – RYN 2012-01-03 21:36:26

+0

你必須做你自己的[線性插值](http://en.wikipedia.org/wiki/Linear_interpolation)來將_view_翻譯爲_model_座標; 'drawXxxAxisTrace()'方法顯示如何獲得_view_界限。 – trashgod 2012-01-04 03:08:20