LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Plotting 3D data as 2D colour map on intensity graph

Hello all, 

 

I'm using Labview 2018 to create a software to implement measurement routines and read the output data for a time resolved photoluminiscence setup on my lab. The data is saved in a csv file with 1024 x n rows, with n being the number of time positions that the user selects and 1024 are the number of pixels in the camera. It can be anything from 1 to 1000. The time positions can be equally spaced or with different intervals, normally with a interval of 0.1 for the first points and 100 for the last ones. I want now to plot the data in a 2D map with the pixels in the x axis, time in the y position and the data points would be colour coded, much like an Intensity Graph.

 

I tried using an Intensity Graph but as my time axis does not have a regular interval between points, the Intensity Graph is not a good solution since it relies in a fixed distance between the points.  I tried using 3D plots but its very slow and confusing when using XY perspective. I also would need to use the time axis in a logarithmic view and place a cursor on the plot to obtain the point location. 

 

Idealy, I would need a VI that received my X, Y, Z and displayed a intensity color map of Z, in X and Y. Is there a easy solution for this? 

 

Thanks in advance

0 Kudos
Message 1 of 4
(2,991 Views)

You can map your data into a regular 2D array by interpolation or other means, making it suitable for an intensity graph. Note also that you can also change the axis mapping to logarithmic. Is the data equally spaced on a logarithmic scale?

0 Kudos
Message 2 of 4
(2,962 Views)

Hey altenbach, 

 

that is a good idea, however for this particular type of data I think it might not be fully appropriate. The problem with this measurements is that it normally has two dynamics in time: it starts very fast and after a few picosseconds it slows down. The data points are selected by the user in a relaxed way, we input the duration of the segment and how many points to have. A normal time selection would be something like 10 ps - 50 points, 50 ps - 20 points, 1 ns - 50 points, then the software spreads them evenly by the selected duration. So if I were to interpolate this with a regular spacing, I would have to use a small dx to capture the initial dynamics but for the slow part it would create a lot of data that was not measured.

 

I created dummy data to ease on the memory and found that with the 3D Surface Graph we can create projections on a plane and that gives me the exact result that I want (check attached VI). However, it is created on the graph and I can isolate it. Do you know if it is possible to do so?  

 

Thanks for your input! 

0 Kudos
Message 3 of 4
(2,941 Views)

Maybe something like this?

 

(Note that the first time point is zero, so the log does not work. I replaced it with -4. Of course you have complete freedom to choose the new equally spaced log(time axis), start, end, number of points, etc.)

 

 

 

altenbach_0-1594847580085.png

 

0 Kudos
Message 4 of 4
(2,915 Views)