From: Cristiano F. <cri...@pd...> - 2010-05-11 21:11:29
|
Hello, I am a new plplot user and I am not an expert of this tool. I am developing a tomographic application to reconstruct the zones, of a certain volume, where a certain substance is concentrated. So I have a function defined on a three-dimensional space h(x,y,z) that gives the concentration at each point (a 3D histogram of the concentration). I want to plot it in a 4D plot with these characteristics: - the plot space should be divided into voxels. - each voxel should be colored following a palette, with a transparency that decreases with the raising of the concentration. How can I do this? I tried to look in the documentation but I found just an utility to plot a 2D histogram (exempla gratia a 3D plot of a surface over a cartesian plane). Thank you in advance, Cristiano |
From: Alan W. I. <ir...@be...> - 2010-05-12 04:25:41
|
On 2010-05-11 23:11+0200 Cristiano Fontana wrote: > Hello, > > I am a new plplot user and I am not an expert of this tool. > > I am developing a tomographic application to reconstruct the zones, of a certain volume, where a certain substance is concentrated. > So I have a function defined on a three-dimensional space > > h(x,y,z) > > that gives the concentration at each point (a 3D histogram of the concentration). > I want to plot it in a 4D plot with these characteristics: > > - the plot space should be divided into voxels. > - each voxel should be colored following a palette, with a transparency that decreases with the raising of the concentration. > > How can I do this? > I tried to look in the documentation but I found just an utility to plot a 2D histogram (exempla gratia a 3D plot of a surface over a cartesian plane). Hi Christiano: Thank you for your interest in PLplot. We don't have a high-level 3D histogram API. However, you might be able to implement your own 3D histogram function which internally sets colour and transparency of each linear gradient (see below) using our continuous colour API (Colour map 1). In case fills are required rather than gradients, I assume you would need to do 3D filling (i.e., you would want to use plfill3 rather than plfill for filling.) But assuming you need gradients, right now I only have the 2D version of plgradient implemented. See examples 25 and 30 in our svn trunk version for demonstrations of how to use that function. plgradient is quite similar to plfill, but it should not be considered done because I am struggling with deciding how to skew the 2D gradient for non-unity aspect ratio in world coordinates. However, I bring this experimental work to your attention because assuming you would want to use a 3D linear gradient in your work, it should be straightforward (although there are bound to be some 3D skew problems to solve) for you to implement plgradient3 following the very small differences between plfill and plfill3. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |