# Plot 2d image from 3D data Mathematica

by abikutn
Tags: mathematica 8, plot3d, raster scan
P: 10
hello guys,

I have a CSV file with hyuge set of data devided into 3 cols. Y position X position and corresponding intensity values.

I want to plot the image , my thesis is laser- microscopy. so a 2D plot ( density plot ) based on these values.

The following is what I have tried so far!
plotdata = Import["test2 10 10.csv", "Table"]
ListPlot3D[plotdata]
But above results in : is not a rectangular array larger than 2 x 2. >>

Can anyone help me how to deal with such a huge set of data and how to plot it as 2D image ( Grey scale is also fine )

Thank you,

abhi - abikutn@gmail.com
Attached Files
 test2 10 10.zip (866 Bytes, 8 views)
 P: 1,043 If your complete dataset is a square matrix of {x,y,z} in the same form as your small sample then this may work for you xyz = Import["test2 10 10.csv"]; z = Partition[Map[Last, xyz], 10]; ArrayPlot[z, ColorFunctionScaling -> True] That depends on your data being a square matrix and you need to set the size of the partition to restore your data to be a square matrix of z values. This has been done of samples with a million data points and might work with larger values if needed.
 P: 10 Thanks for your reply and support "That depends on your data being a square matrix and you need to set the size of the partition to restore your data to be a square matrix of z values. " by saying this: suppose I have 10 by 10 pixels with some intensity values Z for each pixel. So partition meaning I have to split it 10 by 10 so that its a square matrix ? and what is the meaning of machine size values ? Thank you
 P: 10 Plot 2d image from 3D data Mathematica I suggest you take a look at the CSV file I have attached. for example I have y{1->10} and x{1->10} The way the values are recording in the CSV is as: [step1: y=1, get values for X{1->10} step2: increment y and repeat process till Y=max] Will this affect in anyway how the plot forms based on its actual X and Y co ordinates ??? Just a question. I am not sure if you got my understanding.Basically wont the code you gave mix up all Z values with respect to their X and Y ?
 P: 26 Remove that "Table" from import, use something like this: plotdata = Import["test2 10 10.csv"] z = GatherBy[plotdata, First][[All, All, 3]] ArrayPlot[z, ColorFunction -> "Rainbow"]
P: 1,043
 Quote by abikutn I suggest you take a look at the CSV file I have attached. ;... Just a question. I am not sure if you got my understanding.Basically wont the code you gave mix up all Z values with respect to their X and Y ?
I did use your CSV file to write and test the example I gave you.
Thank you for the example data. That makes it much easier to provide correct answers.
I believe that it does correctly keep the position of the Z values.

You should ALWAYS carefully test any code to make sure that it is correct.
Compare your matrix before any changes and after my calculation to verify this.

I had intended to use an even simpler method of obtaining the Z values but for some reason I just didn't think of a simpler method when I posted my first reply.
 P: 10 Thank you! ... That was a good start ... in the list density plot how can I change the color variation to grey scale image ? Is there a colorscaling function for grey scale just like how it can be done for RGB with ranibow ? Abhi
 P: 26 Just remove ColorFunction -> "Rainbow", e.g. ArrayPlot[z]

 Related Discussions Math & Science Software 8 Math & Science Software 0 Math & Science Software 14 Math & Science Software 6 Math & Science Software 1