答案 0 :(得分:5)
不幸的是,通用图形解决方案可能不会很好地扩展到200万点 - 这足够大,如果你想要交互式性能,你需要专门的东西。
我可以看到一些明智的选择:
编写您自己的自定义“绘图仪”功能,该功能针对绘制大量点进行了优化。您必须对其进行测试,但我认为您可以通过在紧密循环中使用setRGB将点直接写入BufferedImage来获得所需的性能。如果仍然不够快,可以将点直接写入字节数组并构造MemoryImageSource。
排除积分,以便您只是例如最多10,000点。只要您只关心散点图的整体形状而不是单个点,这可能是完全可以接受的。
将所有点预渲染到例如然后,大型BufferedImage允许用户放大和缩小/与此静态图像交互。您可以“破解”JFreeChart来执行此操作。
如果OpenGL是一个选项(需要本机代码+陡峭的学习曲线!),然后将所有点放在一个大的顶点阵列中并让显卡为你完成所有操作。将毫不费力地实时处理200万点。
答案 1 :(得分:1)
MathGL是快速免费的(GPL)绘图库。但是我从不测试它的java接口(基于swig)因为我不熟悉java :(。所以,如果有人可以帮助测试那么我会很感激。