1

JFreeChartを使用してグラフを作成しています。

ここに画像の説明を入力してください

問題はかなり明確なはずです。グラフが寸法に収まるように縮小されているため、グラフに描画している円は楕円形で表示されています。

円の注釈を描画する方法は次のとおりです。

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ポイントに変換する方法はありますか?

4

2 に答える 2

1

別の方法として、またはなどのスケール不変の注釈のいずれかを試してください。例えば、XYImageAnnotationXYPointerAnnotation

chart.getXYPlot().addAnnotation(
        new XYPointerAnnotation("Bam!", pointX, pointY, 0));
于 2012-10-17T01:38:19.440 に答える
0

1 つの値のみを含む 2 番目のシリーズを使用することをお勧めします。この 2 番目のシリーズでは、チャートのプロット レンダラーの setSeriesShapesVisible() メソッドを使用して形状の描画を有効にする必要があります。この 2 番目のシリーズに形状を表示するポイントに 1 つの値を追加するだけです。

正方形、円、角丸長方形などを使用できます。実際、どの java.awt.Shape オブジェクトも有効です。

于 2014-03-12T14:18:06.293 に答える