[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Plotting a 3D Array In IDL
eddie haskell wrote:
> > Say I have a 3D array whose elements are only 1 or 0. I'd like to plot
> > this array, say a white dot for the 1's and a red dot for the 0's. Is there
> > a way I can do this in IDL?
> Below is a program fragment that does what I think you want done. There might
> be a slick one line way of doing it or maybe something visually stunning using
> object graphics but nothing currently leaps to mind.
> n = 4
> a = randomu(seed,n,n,n) gt 0.5
> surface, dist(n), /nodata, zr=[0,n-1], /save
> for j = 0,1 do begin
> wh = where(a eq j)
> x = wh mod n
> y = wh / n mod n
> z = wh / n^2
> for i = 0, n_elements(wh)-1 do $
Cool - I couldn't figure out how to do it. I modified the above a little to use plot3d
n = 4
a = randomu(seed,n,n,n) gt 0.5
for j = 0,1 do begin
wh = where(a eq j)
x = wh mod n
y = wh / n mod n
z = wh / n^2
but I find the resultant plot hard to interpret. I think this is a case where object
graphics is required to give some depth to the plot by varying the size of the plotting
symbols with perceived depth... or something like that.
Paul van Delst A little learning is a dangerous thing;
CIMSS @ NOAA/NCEP Drink deep, or taste not the Pierian spring;
Ph: (301)763-8000 x7274 There shallow draughts intoxicate the brain,
Fax:(301)763-8545 And drinking largely sobers us again.