大量の 2D データを扱うプログラムを作成しています。このデータを XYPlot で表示しています。線が時間の経過とともにどの方向に移動しているかをマークする方法はありますか? データはプロット全体に跳ね返りますが、特定の順序にする必要があるため、散布図は機能しません。
編集:明確にするために-X軸もY軸も時間ではありません。これはパラメトリック プロットです。
大量の 2D データを扱うプログラムを作成しています。このデータを XYPlot で表示しています。線が時間の経過とともにどの方向に移動しているかをマークする方法はありますか? データはプロット全体に跳ね返りますが、特定の順序にする必要があるため、散布図は機能しません。
編集:明確にするために-X軸もY軸も時間ではありません。これはパラメトリック プロットです。
私は可能な解決策を発見しました。正しく見えるようにするには多少の作業が必要ですが、今のところ機能しています。
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);
}