3D phase diagram drawing

This is a discussion on 3D phase diagram drawing within the Idl-pvwave forums in Programming Languages category; Hi, I'm looking for a way to draw some diagram like that one: http://www.geology.iastate.edu/gccou...es/diagram.gif My data would come as points organised in "1d sequences" (obtained from a numerical code with incrementation of one parameter), from which I would like to extrapolate some surfaces to separate various domains (so something really close to the figure given as a link). I tried to look whether someone already did that on IDL but didn't find anything. Any advice will be greatly appreciated, even if it were to give me the name of some other software that would be better for that job (free ...

Go Back   Application Development Forum > Programming Languages > Idl-pvwave

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #1  
Old 09-01-2008, 01:48 PM
rincvent@gmail.com
Guest
 
Default 3D phase diagram drawing

Hi,

I'm looking for a way to draw some diagram like that one:
http://www.geology.iastate.edu/gccou...es/diagram.gif

My data would come as points organised in "1d sequences" (obtained
from a numerical code with incrementation of one parameter), from
which I would like to extrapolate some surfaces to separate various
domains (so something really close to the figure given as a link). I
tried to look whether someone already did that on IDL but didn't find
anything.

Any advice will be greatly appreciated, even if it were to give me the
name of some other software that would be better for that job (free
would be better of course).

Thanks.
Reply With Quote
  #2  
Old 09-01-2008, 09:25 PM
RussellGrew
Guest
 
Default Re: 3D phase diagram drawing

If you want to go outside IDL but retain the numerical side of figure
generation with code something like PStricks might suffice. Also
Pyscript. Google them if you wish.
Reply With Quote
  #3  
Old 09-02-2008, 05:23 AM
Wox
Guest
 
Default Re: 3D phase diagram drawing

On Mon, 1 Sep 2008 10:48:26 -0700 (PDT), rincvent@gmail.com wrote:

> Hi,
>
>I'm looking for a way to draw some diagram like that one:
>http://www.geology.iastate.edu/gccou...es/diagram.gif
>
>My data would come as points organised in "1d sequences" (obtained
>from a numerical code with incrementation of one parameter), from
>which I would like to extrapolate some surfaces to separate various
>domains (so something really close to the figure given as a link). I
>tried to look whether someone already did that on IDL but didn't find
>anything.
>
>Any advice will be greatly appreciated, even if it were to give me the
>name of some other software that would be better for that job (free
>would be better of course).
>
>Thanks.


The code bellow will give you something to start with. Check also
PLOT_3DBOX. I seem to remember there was also something in the IDL
demo (itools?) what looks like this....


; Make data
n=100
m=2.
X=indgen(n)-n/2.
Y=X
Z=DIST(n)
YZ=max(Z,dim=1)
XZ=max(Z,dim=2)

; Set 3D
device,decompose=0
loadct,39
pos=[0.25, 0.25, 0.75, 0.75]
surface,Z,X,Y,/save,/nodata,xstyle=5,ystyle=5,zstyle=5,/normal,pos=pos

; XZ-plane
PolyFill, [!X.Crange[0], !X.Crange, !X.Crange[1]], $
Replicate(m*!Y.Crange[1],4),[!Z.Crange, !Z.Crange[1],$
!Z.Crange[0]],/T3D,color=50
Axis, !X.Crange[0], m*!Y.Crange[1], !Z.Crange[0], /XAXIS,
/T3D,charsize=1.5
Axis, !X.Crange[0], m*!Y.Crange[1], !Z.Crange[0], /ZAXIS,
/T3D,charsize=1.5
plots,!X.Crange[[0,0]],[!Y.Crange[1],m*!Y.Crange[1]],!Z.Crange[[0,0]],linestyle=4,/T3D
plots,!X.Crange[[1,1]],[!Y.Crange[1],m*!Y.Crange[1]],!Z.Crange[[0,0]],linestyle=4,/T3D
Plots, X, replicate(m*!Y.Crange[1],n), XZ, /T3D,linestyle=0

; YZ-plane
PolyFill, Replicate(m*!X.Crange[1],4), $
[!Y.Crange, !Y.Crange[1], !Y.Crange[0]],$
[!Z.Crange[0], !Z.Crange, !Z.Crange[1]],$
/T3D, COLOR=50
Axis, m*!X.Crange[1], !Y.Crange[1], !Z.Crange[0], /YAXIS,
/T3D,charsize=1.5
Axis, m*!X.Crange[1], !Y.Crange[1], !Z.Crange[0], /ZAXIS,
/T3D,charsize=1.5
plots,[!X.Crange[1],m*!X.Crange[1]],!Y.Crange[[0,0]],!Z.Crange[[0,0]],linestyle=4,/T3D
plots,[!X.Crange[1],m*!X.Crange[1]],!Y.Crange[[1,1]],!Z.Crange[[0,0]],linestyle=4,/T3D
Plots, replicate(m*!X.Crange[1],n), Y, YZ, /T3D,linestyle=0

; Plot surface
surface,Z,X,Y,/noerase,xstyle=5,ystyle=5,zstyle=5,/normal,pos=pos,SKIRT=0

; Line on surface
Plots, X, replicate(Y[n/3],n), Z[n/3,*],
/T3D,linestyle=0,color=250,symsize=10
Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 02:15 PM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.