在浏览器上绘制10亿个三维点

5

我有一个大约为200 x 200 x 200 x 150的网格需要在浏览器上绘制。

这可以表示为X x Y x Z x Color。3D散点图通常具有此功能。

我尝试过plotly.Scatter3d,但仅适用于小得多的数据集。

我看了一下Datashader,但不幸的是只适用于2D。我还检查过Datashader+Holoviews,但没有找到任何解决方案......

我离成功最近的是来自PlotLy的MRI Slice示例:https://plot.ly/python/visualizing-mri-volume-slices/

如果有可能添加额外的切片器(X、Y和Z),则可能是一个解决方案。虽然不是我想要的,但也算是一个解决方案。

如果有任何实现此目标的想法,将不胜感激。 谢谢


2
例如,从十亿个绘制的点中,你可以学到什么,而从一百万个点中则不行呢? - roganjosh
4
今天最好的显示器上平均每个像素将点亮 1.2*10^9 个点,但它们是完全没有意义的。你需要想办法将这些点代表的信息转化成能够呈现有意义的可视化。如果你没有更好的方法,可以随机采样约 5,000 个点并将它们放在散点图中。请注意,这项任务需要你自己(我指的就是你,不要让程序来完成)来完成。 - High Performance Mark
2
@roganjosh:很多,你会感到惊讶。请查看datashader网站以了解这个概念。 - RicLeal
2
@HighPerformanceMark:问题在于可能从10亿个点中提取的详细程度。只要有缩放选项,可以从服务器检索新数据,我完全支持这样做。我认为Datashader就是这样工作的... - RicLeal
@roganjosh:没问题。我尊重你的观点。这不是为了传达信息,而是为了分析晶体固体的原子尺度动态特性,几个像素就会有所不同。 - RicLeal
1个回答

3

您可以使用来自http://vaex.astro.rug.nl的工具,因为它具有Datashader的聚合的3D版本,尽管它专注于密度图(热图),而不是已经网格化的数据。

一些人已经在Datashader+HoloViews中设置了用于处理图像堆栈(或将体积数据视为图像堆栈)的工具,并提供了一些示例代码,位于https://github.com/pangeo-data/pangeo/issues/144。我认为在http://pangeo.pydata.org上有一个可运行的示例,名为“scikit-image-example.ipynb”,尽管可能已经不存在了。我们肯定希望使其更容易实现,因为这是一个常见的问题,但目前并不是我们的紧急路线图上的重点。如果有人制作出可以重复使用的东西,我们很乐意接受贡献...


非常感谢您的帮助!我一定会深入研究您的建议! - RicLeal
希望看到它发生。 - MyCarta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接