JFreeChart Комбинированный график XY с временными рядами

Я хочу разместить две диаграммы временных рядов с одной и той же осью временной области друг над другом, обе с несколькими наборы данных.

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

где tsc1 и tsc2 - это наборы данных TimeSeriesCollection, содержащие несколько TimeSeries, которые имеют один и тот же диапазон дат - около 5 лет.

Когда я рисую их по отдельности, проблем нет, то есть ось временной области отображает календарные даты, как и нужно.

Как только я объединяю два графика с помощью конструкции:

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 год)?

6
задан alrts 24 January 2012 в 22:10
поделиться