2012-01-24 32 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);