我有大量的数据点是非整数值(浮点数)的二维坐标。我正在寻找一个Java库,可以帮助我绘制这些点,允许自定义点的大小,颜色和标签。此外,我希望用户能够通过平移和缩放与点进行交互,并且我希望能够捕获用户的KeyEvent。用Java绘制点与交互
处理看起来很棒我想要什么,但我不想从头开始做所有事情。有更好的解决方案吗?
在此先感谢。
编辑:有约2k点。
我有大量的数据点是非整数值(浮点数)的二维坐标。我正在寻找一个Java库,可以帮助我绘制这些点,允许自定义点的大小,颜色和标签。此外,我希望用户能够通过平移和缩放与点进行交互,并且我希望能够捕获用户的KeyEvent。用Java绘制点与交互
处理看起来很棒我想要什么,但我不想从头开始做所有事情。有更好的解决方案吗?
在此先感谢。
编辑:有约2k点。
取决于。我最近做了使用JFreechart显示大型二维数据集的应用程序,但是我最终减小了数据集的性能。
我显示了点数的矩阵,它随着时间(新数据到达时)发生变化,刷新时间为1秒(因此每一秒钟的图表都被重新绘制)。
对于matries 256 x 256在正常的用户计算机上可以。如果矩阵约为350点,则会变得粗糙(用户看到GUI中的延迟),但是如果矩阵为1024 x 1024,则应用程序不可用。
虽然我把图表绘制为EDT,但即使我把它放入不同的线程---渲染仍然会消耗处理器的能量。
因此,根据数据集的大小---你可能想使用JFreeChart。
我还没有找到适合大数据集的好库。
当你说大的是什么意思? 1k,10万或100万点?
我刚刚推出了自己的自从我的数据集至少100k点。我试过了所有我能找到的图表库,但没有一个能够像我自己推出的图表一样快。
这个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));
}
}
我的数据集约为2k points。不过,我不需要这么快。 – mellort 2010-04-19 18:29:40