2011-08-03 53 views
0

的JFreeChart域軸我想顯示的情節,將有在特定的時間段不同的顏色。多(但連續的)數據系列

我沒做到這一點是通過切碎的初始數據串聯成零部件,並在數據集中添加它們以適當的順序被繪製的唯一途徑。例如,如果圖的默認顏色是藍色,並且我想突出顯示兩個時間段(例如,紅色),則會得到由5個數據系列組成的數據集:

dataset.add(藍色)初始圖

dataset.add(紅色)高亮1

dataset.add(藍色)初始情節持續

dataset.add(紅色)亮點2

dataset.add(藍色)初始情節繼續

連接數據集中每個部分的域軸中的點是有序的。不過,我對域軸有問題。在數據序列中的每個點被適當地實例化(我想,因爲域軸線的取向爲具有相同的開始和結束點dataseries正常工作)

milliseconds = ts.getTime() + (ts.getNanos()/1000000); 
date = new Date(milliseconds); 
intYear = date.getYear() + 1900; 
year = new Year(intYear); 
intMonth = date.getMonth(); 
month = new Month(intMonth, year); 
intDay = date.getDate(); 
day = new Day(intDay, month.getMonth(), year.getYear()); 
hour = new Hour(date.getHours(), day); 
minute = new Minute(date.getMinutes(), hour); 

tpVal = new TimePeriodValue(minute, watts); 
s1.add(tpVal); 

該圖像具有在多次放大域座標軸。域軸的範圍從00:00:00到23:59:59 http://i.imgur.com/c7TDY.jpg

有沒有辦法來修復域軸的對齊方式,以便我可以在不需要放大的情況下正確顯示繪圖?

+0

問題是什麼?我想我也會那樣做。不過,我可能會保留最初的數據系列,並且只用不同的顏色添加到選定數據段的頂部。 – toto2

+0

感謝您的建議。問題是我如何解決域軸的對齊問題?在屏幕截圖中,域軸至少放大4倍。我希望域軸包含小時和情節,以便無需放大即可完全可見。任何想法如何解決此問題? :) – staths

+0

對於NumberAxis有autoAdjustRange。我仍然不確定我的理解:初始範圍是0到23:59:59,並且在縮放4次後它不會改變? – toto2

回答

0

我發現了一個「辦法」,以解決這個問題。

在如上所述將每個數據序列添加到數據集之後,我只在數據集的末尾添加了原始未切碎的數據序列,並且域軸包含了所有的日期點,正確對齊。

原始未切碎的數據系列正在被「斬」的部分重疊,所以它是完全不可見。這是它現在的樣子。 http://i.imgur.com/Wc893.jpg

我想這個問題是由於這樣的事實,有沒有數據系列將涵蓋從開始(第1個數據系列的第一timePeriodValue)域座標軸的每一個點結束(最後一個數據的最後timePeriodValue - 系列)搞砸了autorange()或其他調用軸對齊的方法。

我雖然我應該讓你知道;也許它會幫助有類似問題的其他人。

感謝託託的建議離開原來的數據序列不變。