On 2010-05-11 23:11+0200 Cristiano Fontana wrote:
> 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
> 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 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 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