1

我正在制作一个处理大量二维数据的程序。我在 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 回答