LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

best method for many graphs of a large data set?

I'm working with a large data set (~4.6Mb) and want to graph it in several different ways. I would like to view some of the graphs at the same time; others would never need to be viewed together. Would it be better to re-use graphs to avoid storing copies of all that data in each graph? Or is it better to have separate graphs to avoid the delay of changing graph properties every time I graph?

I would think that re-using graphs would be a good idea, but re-scaling axes and label markers seems to induce a large delay...
0 Kudos
Message 1 of 7
(2,510 Views)
Salutations,

Alright, just an idea, and it might be a suicidal one at that, but since you've got the code in front of you and you're more capabe of trying it than me.

I wonder if it would be best to do all the graphs at one instant in time. Alright, so now it looks like chaos theory all over your front panel, maybe place some buttons to activate certain plots by event structures and property nodes that makes the plots visible (hide or show indicator)?

Or you could use the buttons and event structures so that you only pass the data when it's needed into the plots. That way you'd prevent having a large amount of plot memory used up.

The second idea is less suicidal, but it'll take some time for the data to be flown into the plot i'm sure.

Hope this provides something, or maybe it provided nothing,
ElSmitho
0 Kudos
Message 2 of 7
(2,504 Views)
There is no need to plot more points than pixels in your display. The user cannot see them and the computer cannot display them. Decimate or average points in the data set to the number you need for the display. This should speed things up compared to displaying Mb.

Lynn
Message 3 of 7
(2,487 Views)
As far not unnecessarily complicating my code, I think it is probably easier to write to all the graphs at once as you said ElSmitho. As far as runtime, I think Lynn's got a good point about what the user's able to see. But what happens if the user zooms in on the graph? I would need to regraph the data based on the new size of the graph, right?

Thanks a bunch for your help!
Michelle
0 Kudos
Message 4 of 7
(2,478 Views)
First, check out Managing Large Data Sets in LabVIEW. It contains information and examples of almost exactly your problem.

Next disable front panel updates when you are resetting the graph. This prevents LabVIEW from redrawing everything every time you do anything.

If you are decimating and want to be able to zoom, you will have to handle the zoom yourself, unless your decimation is “light” enough.

Unfortunately, dealing with large data in LabVIEW complicates your code. It is worth the effort, because your performance and memory requirements can be reduced dramatically.

I would not recommend drawing all your graphs at once. This may lead to memory problems.

Good luck. Let us know how you do.
Message 5 of 7
(2,452 Views)
Next disable front panel updates when you are resetting the graph. This prevents LabVIEW from redrawing everything every time you do anything.


Thanks for the help. I have a quick question before I get started: what do you mean by resetting the graphs? I know about disabling front panel updates, but I'm not sure when I should disable the updates.
0 Kudos
Message 6 of 7
(2,441 Views)
Any time you do more than one thing to the graph (write data, change a property using the property nodes, etc.), you should probably turn off front panel updates. LabVIEW is very safe, so it will redraw (reset) the graph (and sometimes a good portion of the rest of your front panel, depending upon what version of LV you are using) every time you do anything to it. If you have lots of data in the graph, this is very expensive. Of course, if you are decimating the data for display, this problem will be minimized. Try without the front panel updates toggles. If things are fast enough, don't worry about it. If they aren't, put them in.
Message 7 of 7
(2,422 Views)