用交互式绘制Java中的点

时间:2010-04-19 18:10:50

标签: java plot

我有大量的数据点,它们是具有非整数值(浮点数)的二维坐标。我正在寻找一个可以帮助我绘制这些点的Java库,允许自定义点大小,颜色和标签。此外,我希望用户能够通过平移和缩放与点进行交互,并且我希望能够从用户捕获KeyEvent。

处理看起来很棒我想要的东西,但我不想从头开始做所有事情。有更好的解决方案吗?

提前致谢。

编辑:大约有2k点。

3 个答案:

答案 0 :(得分:2)

我还没有找到适合大型数据集的好库。

当你说大的时候是什么意思? 1k,100k或100万点?

我刚刚推出了自己的数据,因为我的数据集至少是100k点。我已经尝试了所有可以找到的图表库,但是没有一个像我自己编写的那样快。

答案 1 :(得分:2)

取决于。我最近做了一个用JFreechart显示大型2d数据集的应用程序,但我最终使数据集变小以获得性能。

我显示了点的矩阵,这些点在时间上变化(当新数据到达时),刷新时间为1秒(因此重新绘制每一秒图表)。

对于咒语256 x 256,普通用户计算机上没问题。如果矩阵是~350 pts它变得粗糙(用户在GUI中看到滞后),但是如果矩阵是1024 x 1024应用程序不可用,则它是可用的。

我用EDT绘制了图表,但即使我把它带入不同的线程---渲染仍然会占用处理器能力。

因此,根据数据集大小---您可能希望使用JFreeChart。

答案 2 :(得分:1)

这个example可以轻松处理数千个节点。

GraphPanel() {
    ...
    Random rnd = new Random();
    for (int i = 0; i < 2000; i++) {
        Point p = new Point(rnd.nextInt(WIDE), rnd.nextInt(HIGH));
        nodes.add(new Node(p, 4, Color.blue, kind));
    }
}