我正在制作一个处理大量二维数据的程序。我在 XYPlot 中显示这些数据。有什么方法可以标记线随着时间的推移移动的方向吗?数据在整个绘图中反弹,但需要按特定顺序排列,因此散点图对我不起作用。
编辑:澄清 - X 或 Y 轴都不是时间。这是一个参数图。
我正在制作一个处理大量二维数据的程序。我在 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);
}