如何在JFreeChart折线图上创建形状?

时间:2017-03-30 13:45:20

标签: java jfreechart

我希望有一些形状(小方块)标记我使用ChartFactory.createLineChart()创建的折线图中的数据点。

它应该看起来像这样(这个图像不是用JFreeChart创建的):

Line chart with square markers

我已按照here的说明进行操作,但是,它们并不适合我。这就是我的JFreeChart软件的输出结果:

enter image description here

我的代码是:

JFreeChart lineChart = ChartFactory.createLineChart(...);
CategoryPlot plot = (CategoryPlot) lineChart.getPlot();
plot.getRenderer().setBaseShape(
    new Rectangle2D.Double(-20.0, -20.0, 40.0, 40.0));

我也尝试使用setSeriesShape而不是setBaseShape来制作我正在绘制的所有系列,它也没有任何区别。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

鉴于对渲染器的引用,

LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();

调用setBaseShapesVisible()以启用所选DrawingSupplier提供的形状。

renderer.setBaseShapesVisible(true);

image 1

要更改外观,请将自定义Shape传递给setSeriesShape()以获取所需的系列。

renderer.setSeriesShape(0, new Ellipse2D.Double(-3d, -3d, 6d, 6d));

image 2

答案 1 :(得分:1)

来自 JFreechart 1.5.0

LineAndShapeRenderer renderer = (LineAndShapeRenderer) lineChart.getCategoryPlot().getRenderer();
renderer.setDefaultShapesVisible(true);