1

大量の 2D データを扱うプログラムを作成しています。このデータを XYPlot で表示しています。線が時間の経過とともにどの方向に移動しているかをマークする方法はありますか? データはプロット全体に跳ね返りますが、特定の順序にする必要があるため、散布図は機能しません。

編集:明確にするために-X軸もY軸も時間ではありません。これはパラメトリック プロットです。

4

1 に答える 1

2

私は可能な解決策を発見しました。正しく見えるようにするには多少の作業が必要ですが、今のところ機能しています。

JFreeChart にはXYPointerAnnotationというクラスがあり、カスタムの角度、長さ、幅の矢印をグラフに追加できます。私はまだクラスを理解しようとしていますが、これまでのところ、私の目的には十分に機能しているようです。添付コード:

for (int i = 0;i < data.getItemCount(0) - 1;i++)
    {
    double x1 = data.getSeries(0).getDataItem(i).getXValue();
    double x2 = data.getSeries(0).getDataItem(i + 1).getXValue();

    double y1 = data.getSeries(0).getDataItem(i).getYValue();
    double y2 = data.getSeries(0).getDataItem(i + 1).getYValue();

    double angle = Math.atan2(y1 - y2, x2 - x1) + Math.PI;
    XYPointerAnnotation arrow = new XYPointerAnnotation("",x1,y1,angle);

    if (i == 0)
        {
        arrow.setText("Start");
        }
    else if (i % 5 == 0)
        {
        arrow.setText(Integer.toString(i));
        }

    arrow.setLabelOffset(15.0);
    arrow.setToolTipText(Integer.toString(i));
    _originalPlot.addAnnotation(arrow);
    }
于 2013-07-23T18:41:33.960 に答える