[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.
>
> Cheers,
> eddie
>
> ;--------------------------
> n = 4
> a = randomu(seed,n,n,n) gt 0.5
> surface, dist(n), /nodata, zr=[0,n-1], /save
> tvlct,[0,255],[255,0],[0,0],1
>
> 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 $
> plots,x[i],y[i],z[i],/t3d,psym=2,color=j+1
> endfor
> ;-----------------------
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
tvlct,[0,255],[255,0],[0,0],1
for j = 0,1 do begin
wh = where(a eq j)
x = wh mod n
y = wh / n mod n
z = wh / n^2
plot3d, x,y,z,psym=2,color=j+1,oplot=j
endfor
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.
paulv
--
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.
Alexander Pope.