Как отобразить фигуры в точках на графике JFreeChart TimeSeries? - PullRequest
0 голосов
/ 29 августа 2018

Я использую JFreeChart v1.0.19 для создания следующего графика временных рядов:

enter image description here

... используя следующий код:

final String chartTitle = "";
final XYDataset dataset = createDataset1();

final JFreeChart chart = ChartFactory.createTimeSeriesChart(
    chartTitle, "Year End", "Turnover", dataset, true, false, false);

final XYPlot plot = chart.getXYPlot();
final NumberAxis axis2 = new NumberAxis("Cash");
axis2.setAutoRangeIncludesZero(false);
plot.setRangeAxis(1, axis2);
plot.setDataset(1, createDataset2());
plot.mapDatasetToRangeAxis(1, 1);

final StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();
renderer1.setSeriesPaint(0, Color.blue);
renderer1.setSeriesShape(0, ShapeUtilities.createDiamond(5));
renderer1.setSeriesShapesFilled(0, true);
plot.setRenderer(0, renderer1);

final StandardXYItemRenderer renderer2 = new StandardXYItemRenderer();
renderer2.setSeriesPaint(0, Color.black);
renderer2.setSeriesShape(0, ShapeUtilities.createDiamond(5));
renderer2.setSeriesShapesFilled(0, true);
plot.setRenderer(1, renderer2);

chart.getPlot().setBackgroundPaint(Color.WHITE);
chart.getXYPlot().setDomainGridlinePaint(Color.LIGHT_GRAY);
chart.getXYPlot().setRangeGridlinePaint(Color.LIGHT_GRAY);

... но я не могу заставить точки данных показывать фигуры. Это возможно?

1 Ответ

0 голосов
/ 29 августа 2018

Проблема была в моем рендерере. Изменение от StandardXYItemRenderer до XYLineAndShapeRenderer, например

XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true,true);

... сделал свое дело. Два логических аргумента в конструкторе предназначены для включения / выключения линий и фигур соответственно.

...