Creating an Image Plot from a scattered data set

I have several 1D YZ data waves correspond to different X values. They look like:

X = 1; YZ = (1, 100), (2, 104), (3, 117), ...., (10, 87)
X = 2; YZ = (-1, 201), (1.5, 159), ..., (10.5, 198)
...
X = 10; YZ = (-5.2, 103), (-2.3, 205), ..., (12, 147)

Now I want to combine all the data into a single image plot, all the YZ data set contain the same number of data points, but the Y_values are different for different data set, and they are not equally spaced.

Is there a way to plot this data as it is? Otherwise, I guess I need to interpolate all the data for the same range of Y_values. Thanks!!!
The good news is that Igor Pro can do all the computationally intensive interpolation for you. The not so good news is that you will have to restructure your data to take advantage of this. Here is what I suggest:
(1) convert each of your YZ waves to triplet form by pre-pending its common X value in dimension 0. If you have named these YZ waves in a simple sequential manner, it is easy to program this.
(2) concatenate each of these small triplet waves into one long triplet wave using the Concatenate operation. Example:
Concatenate/NP=0  {wtrip}, wBig

for 'wtrip' refreshed within a loop; otherwise list all small triplet waves.
See the Concatenate help file for further details.
Then create your image using the ImageInterpolate operation with the total triplet input wave, as in
ImageInterpolate/S={20,1,30,0,1,20 }  Voronoi  wBig

The default image wave is created in M_InterpolatedImage. See the ImageInterpolate help file for further details.
Another option is to display the triplet data in a Gizmo scatter plot.
There are several ways to approach this problem. I suggest you start by structuring your data in three 1D waves so that every YZ pair corresponds to one row in all three waves, e.g., the first row in your post would correspond to the following entries:
xWave   yWave   zWave
1   1   100
1   2   104
1   3   117
...

Now you can plot the points as scatter with color as f(z), e.g.,

Display yWave vs xWave
ModifyGraph mode=3,marker=19
ModifyGraph zColor(yWave)={zWave,*,*,Rainbow,0}

Another alternative is that you store the data in a triplet wave (a 3-column wave that contains the same data as above) and then you can display the data in a 3D scatter using Gizmo. You can find an example of this in http://www.wavemetrics.com/products/igorpro/videotutorials.htm under "Creating a Surface Plot from Scatter Data".

I hope this helps,

A.G.
WaveMetrics, Inc.
You can create a matrix of Z values from XYZ waves by choosing Data->Packages->XYZ to Matrix. You can then make an image plot from the matrix.
Dear all, thanks a lot for the suggestions! The first method suggested by Igor is working fine for me. I will try other methods suggested by you all. This forum is so helpful. Thanks!!!
hrodstein wrote:
You can create a matrix of Z values from XYZ waves by choosing Data->Packages->XYZ to Matrix. You can then make an image plot from the matrix.


Which version of Igor are you using? I don't get that option with Igor Pro 6.1.
I'm using Igor Pro 6.30B01.

In Igor Pro 6.1 you can get the same functionality by opening the procedure window (Windows->Procedure Windows->Procedure Window) and entering this:
#include <XYZtoMatrix>

Then close the procedure window.

Alternatively you can update to Igor Pro 6.22A or 6.30B01 (the current beta) by choosing Help->Updates for Igor. I recommend updating to 6.30B01 if not now then when you have a spare moment.