Create a 4D plot using Gizmo

Hello, I have some data from flights that I wish to plot. I read through the section on multidimensional waves but I am not very skilled at programming so I wasn't able to gain much insight. I have 3 waves with the coordinates (longitude, latitude and altitude) and one more wave with my data (let' s say organics mass fraction) during the flight. All waves have the same amount of points. How can I plot my data in 4D, having points throughout the flight and color-code them depending on the mass fraction? I was able to do a 3D with the concatenate demand showing in x-y the longitude and latitude and z-axis altitude, but my data points were those of the altitude, I couldn't append my mass fraction wave...I could really appreciate any help.
you need to convert the wave that you want to use as color coding into a 2D color wave using ModifyGizmo.
Assuming you have a 1D wave "mass":

ModifyGizmo makeColorWave={mass, Rainbow, 0 }


Instead of "Rainbow" you can use other color tables, see:

DisplayHelpTopic "Color Table Details"


The resulting 2D wave "mass_C" can then be used to color code the scatter plot.
The graph that you are describing is typically handled as follows:

1. Create a triplet wave that describes the aircraft path. This is accomplished by concatenating as follows:
Concatenate {longitude, latitude, altitude},tripletPath


2. If the data are sufficiently dense you can try plotting as a contiguous path. Otherwise use a scatter. To add a path use:
NewGizmo
AppendToGizmo path=root:tripletPath
AppendtoGizmo axes=boxAxes
ModifyGizmo setDisplayList=0, object=path0
ModifyGizmo setDisplayList=1, object=axes0


To add a scatter use:
NewGizmo
AppendToGizmo defaultScatter=root:tripletPath


At this point you have either a scatter or a path plot and you need to code the 4th dimension say massWave. If you are plotting a path use a colorscale to code this information. CharLie's response above shows you the general idea except that in the case of a path you would use e.g.,
ModifyGizmo makeTripletColorWave={massWave,Rainbow,0}  // creates massWave_c
ModifyGizmo ModifyObject=path0,objectType=path,property={ pathColorType,2}
ModifyGizmo ModifyObject=path0,objectType=path,property={ pathColorWave,root:massWave_C}


If you are using scatter you have two options. The first is identical to the above, i.e., color the scatter object. The second option is to use the massWave to create a scaling wave that would scale the size of the scatter marker to indicate the massWave data. The size wave is a 3-column wave (for scaling x, y and z directions) with a scale of 1 to draw the marker in the default size. Suppose you want the massWave to range from a scale of 0.5 to 1, i.e., half default size to full default marker size. In that case you would execute the following code:
Variable wmax=WaveMax(massWave)
Variable wmin=WaveMin(massWave)
Variable delta=wmax-wmin
Make/n=(DimSize(massWave,0),3) scatterScaleWave
scatterScaleWave=0.5+(massWave[p]-wmin)/(2*delta)
// apply to your scatter object:
ModifyGizmo ModifyObject=scatter0,objectType=scatter,property={ sizeType,1}
ModifyGizmo ModifyObject=scatter0,objectType=scatter,property={ sizeWave,root:scatterScaleWave}


At this point you may want to append a map at the bottom of the graph. You can find a full demo of this feature under File Menu->Example Experiments->Visualization->flightPathDemo.

I hope this helps,

A.G.
WaveMetrics, Inc.






Thank you for your help!!! I succeeded in making the plots, but I cannot see from where to add the colorscale annotation in order to get a notion of the mass fraction.
kat_B wrote:
Thank you for your help!!! I succeeded in making the plots, but I cannot see from where to add the colorscale annotation in order to get a notion of the mass fraction.


Choose Gizmo Menu->Add Annotation... and in the dialog select ColorScale as the annotation type. Alternatively execute, e.g.,
ColorScale/C/N=text0/A=MC  ctab={0,100,Rainbow,0}


Hello, I tried what you proposed but I have this problem: when I choose the Gizmo menu I do not get an option of Add Annotation, only an Append Annotation where I cannot find any option to add ColorScale...And alternatively I add the command: ColorScale/C/N=text0/A=MC ctab={0,100,Rainbow,0} I get an error message saying:
This operation is for graphs or layouts only....
Thank you for all your help.
I was assuming that you are using IP7. If you are using an older version of Igor, the menus and options may be different and more restrictive. Gizmo was completely rewritten for IP7. Note that if you are using IP6 or earlier version, this may be a good time for you to consider upgrading because you will get a free IP8 upgrade and upgrading from IP6 after IP8 release will be more expensive.

Indeed I am using IP 6.37...I haven' t upgraded to IP 7 because I am using some routines for PMF results which are not yet running in IP 7... So I assume that I cannot do the colorcoding in IP 6.37, right?? Sorry for all the questions and thank you for your time and help...
@kat_B: Are the PMF routines not running in IP7 public? It is usually a quick job to make them running in IP7.