2012-01-24 35 views
4

我想將兩個時間序列圖共享相同的時間軸在彼此之上,都與多個數據集。JFreeChart帶時間序列的組合XY圖

chart1 = ChartFactory.createTimeSeriesChart("", "", "", tsc1, true, true, false); 
subplot1 = chartCOT.getXYPlot(); 
... 
chart2 = ChartFactory.createTimeSeriesChart("", "", "", tsc2, true, true, false); 
subplot2 = chartCOT.getXYPlot(); 
... 

其中TSC1和TSC2是含有多個的TimeSeries其中兩者都具有大約5年相同的日期範圍TimeSeriesCollection數據集。

當我單獨繪製它們時,沒有問題,即時域軸根據需要反映日曆日期。

當我由施工的手段相結合的兩個曲線:

CombinedDomainXYPlot plot = new CombinedDomainXYPlot(); 
plot.setGap(10.0); 
plot.add(subplot1, 2); 
plot.add(subplot2, 1); 
chart[ch] = new JFreeChart("label", null, plot, true); 

圖表出現在彼此上方,如所期望的,但時間軸不顯示日曆日期了,但值像0,因爲它們顯示的是毫秒數,所以就有250'000'000'000和500'000'000'000等等。此外,時間範圍延伸到左側大約30年,地塊數據(從2006年開始)在最右側開始,因此壓縮程度非常高。

如何保留域軸的正確表示(日曆日期在2006年和2012年之間)?

+0

請編輯您的問題糾正標識符並提供[SSCCE(http://sscce.org/)展現你描述的問題。 – trashgod

回答

6

我終於找到了解決問題的辦法通過自己:

當我初始化CombinedDomainXYPlot,它分配一個numberAxis爲默認值,並且不使用已經由次要情節限定的軸線。

因此我不得不告訴plot該域軸是時間序列:

ValueAxis domainAxis = new DateAxis(""); 
plot.setDomainAxis(domainAxis);