绘制注释形状而不使用图形缩放

时间:2012-10-16 16:37:24

标签: jfreechart

我正在使用JFreeChart创建图表:

enter image description here

问题应该是相当清楚的。我在图表上绘制的圆圈显示为椭圆形,因为我的图形按比例缩小以适应我的尺寸。

以下是我如何绘制圆形注释:

chart.getXYPlot().addAnnotation(
    new XYShapeAnnotation(
        new Ellipse2D.Float(pointX - 15, pointY - 15, 30, 30),
        new BasicStroke(0.5), Color.BLACK, Color.GREEN
    )
);

如何在不缩小注释的情况下绘制注释?有没有办法在图表上绘制,将全局/实际X / Y点转换为局部/缩放的X / Y点?

2 个答案:

答案 0 :(得分:1)

作为替代方案,请尝试其中一种尺度不变的annotations,例如XYImageAnnotationXYPointerAnnotation。例如,

chart.getXYPlot().addAnnotation(
        new XYPointerAnnotation("Bam!", pointX, pointY, 0));

答案 1 :(得分:0)

我建议使用第二个系列,其中只有一个值。对于第二个系列,您需要使用图表的绘图渲染器的setSeriesShapesVisible()方法启用形状绘制。您需要做的就是在希望形状出现的点上为第二个系列添加一个值。

您可以使用正方形,圆形,圆角矩形等等。事实上,任何java.awt.Shape对象都是有效的。