5

I have grid of approximately 200 x 200 x 200 x 150 that I need to plot on the browser.

This can be represented as X x Y x Z x Color. A 3D scatter has usually functionality for that.

I have tried the plotly.Scatter3d that works wonders for much smaller datasets.

I had a look at Datashader but unfortunately only works for 2D. I also checked Datashader + Holoviews but haven't found any solution...

The closer that I get was this MRI Slice example from PlotLy: https://plot.ly/python/visualizing-mri-volume-slices/

If there's a possibility to add additional slicers (X, Y and Z) this might be a solution. Not what I wanted, but a solution.

Any ideas how to achiece this would be much appreciated. Thanks

RicLeal
  • 923
  • 9
  • 23
  • 2
    What can you learn from a billion plotted poins that you couldn't from a million, for example? – roganjosh Aug 17 '18 at 15:48
  • 4
    On average `1.2*10^9` points plotted on today's best display will light up every pixel and be totally meaningless. Somewhere, somehow, you (I mean you, don't leave it to the program) have to turn it into something that can display a meaningful visualisation of the information those points represent. If you don't have any better ideas, randomly sample about 5,000 points and put them into a scatter plot. – High Performance Mark Aug 17 '18 at 15:51
  • 2
    @roganjosh : A lot, you would be surprised. Check the datashader website to understand the concept. – RicLeal Aug 17 '18 at 15:57
  • 2
    @HighPerformanceMark : The problem is the level of detail that might be extracted from 1 bilion points. As long as there an option to zoom in, retrieve new data from the server, I'm all for that. I think Datashader works like that... – RicLeal Aug 17 '18 at 16:00
  • @roganjosh : No worries. I respect your point. This is not to communicate a message, it is to analyse atomic-scale dynamical properties of crystalline solids, a few pixels make a difference. – RicLeal Aug 17 '18 at 16:15

1 Answers1

3

You may be able to use tools from http://vaex.astro.rug.nl , as it has 3D versions of Datashader's aggregations, though it focuses on density plots (heatmaps) rather than already gridded data.

Several people have set up tools to work with image stacks (or with volume data treated as image stacks) in Datashader+HoloViews, with some sample code at https://github.com/pangeo-data/pangeo/issues/144. I think there is a runnable example somewhere at http://pangeo.pydata.org called "scikit-image-example.ipynb", though that may no longer be up. We would definitely like to make it easier to do this, as it's a common problem, though it's not currently on our immediate roadmap. Happy to accept contributions if people do make something reusable...

James A. Bednar
  • 3,195
  • 1
  • 9
  • 13