Raymond Tsang Posted August 21, 2008 Report Share Posted August 21, 2008 I'm making a strip chart (actually consists of 3 overlaid strip charts) which has uneven time intervals between data points. That means the 1st and 2nd points may be separated by 2 sec, but the 2nd and 3rd by 1 sec, and so on. I have been exploring XY graphs, but it seems I can't overlay graphs. Any suggestions? Thanks in advance! Ray Quote Link to comment
mross Posted August 21, 2008 Report Share Posted August 21, 2008 QUOTE (Raymond Tsang @ Aug 20 2008, 06:23 PM) I'm making a strip chart (actually consists of 3 overlaid strip charts) which has uneven time intervals between data points. That means the 1st and 2nd points may be separated by 2 sec, but the 2nd and 3rd by 1 sec, and so on.I have been exploring XY graphs, but it seems I can't overlay graphs. Any suggestions? Thanks in advance! Ray If you turn on context help Ctrl-H and hover over the BD icon for the XY graph it will show you the data structure needed to produce multiple plots on one XY. graph. Quote Link to comment
Raymond Tsang Posted August 22, 2008 Author Report Share Posted August 22, 2008 QUOTE (mross @ Aug 21 2008, 06:36 AM) If you turn on context help Ctrl-H and hover over the BD icon for the XY graph it will show you the data structure needed to produce multiple plots on one XY. graph. Thanks! Got it. But... because I'm taking data every second (or 0.1 sec), so every second, I have to pass a huge array through shift register, and put in one new entry. Is there a function in XY graph, where I can add a new point in every iteration? Ray Quote Link to comment
jgcode Posted August 22, 2008 Report Share Posted August 22, 2008 QUOTE (Raymond Tsang @ Aug 21 2008, 08:53 AM) Thanks! Got it.But... because I'm taking data every second (or 0.1 sec), so every second, I have to pass a huge array through shift register, and put in one new entry. Is there a function in XY graph, where I can add a new point in every iteration? Ray The default buffer for a strip chart is 1024. That is hardly huge. I have tried passing 50-100K pts without struggling. Obviously the user can only see so much resolution anyway! What is your definition of huge? Sample rate x "time needed to be displayed" = on-screen buffer size Do you need to write a point at a time to the screen or can you update the screen in chunks? Do you need to write every point to the screen or can you decimate the array? Quote Link to comment
LAVA 1.0 Content Posted August 22, 2008 Report Share Posted August 22, 2008 Just use a Waveform Chart. When you present data as a Waveform datatype the chart looks at the "t0" value to determine where to plot the point. It allows you to plot multiple traces all having differnt "t0" values that are not periodic. Gotchas? Changing the number of plots shown will reset the chart. Present data that is earlier than data already plotted will reset chart. History is in units of WFs not data points (in the event you have WF's with multiple "y" values). Try it, you'll like it. Ben Quote Link to comment
Yair Posted August 22, 2008 Report Share Posted August 22, 2008 If you want to avoid having memory problems, you need to replace and rotate the array. There is actually a shipping example of this, but it's not very nice (it uses a local variable), so I created a quick one myself once and you can find it here. Just for the fun of it, here's another version of it which creates a vertical chart. Quote Link to comment
Raymond Tsang Posted August 22, 2008 Author Report Share Posted August 22, 2008 QUOTE (Yair @ Aug 21 2008, 10:30 PM) If you want to avoid having memory problems, you need to replace and rotate the array. There is actually a shipping example of this, but it's not very nice (it uses a local variable), so I created a quick one myself once and you can find it here. Just for the fun of it, here's another version of it which creates a vertical chart. The first didn't work, broken arrow. The second one is fine but this is just doing what i called "manipulations of a huge array". QUOTE (neB @ Aug 21 2008, 07:56 PM) Just use a Waveform Chart. When you present data as a Waveform datatype the chart looks at the "t0" value to determine where to plot the point. It allows you to plot multiple traces all having differnt "t0" values that are not periodic. Gotchas? Changing the number of plots shown will reset the chart. Present data that is earlier than data already plotted will reset chart. History is in units of WFs not data points (in the event you have WF's with multiple "y" values). Try it, you'll like it. Ben I'm not sure if i understand your suggestion correctly... Are you saying that I can treat individual points as separate plots with different t0? Afaik, there is only one t0 value for each plot, right? May I have a screenshot? Ray Quote Link to comment
Yair Posted August 23, 2008 Report Share Posted August 23, 2008 QUOTE (Raymond Tsang @ Aug 22 2008, 12:46 AM) The first didn't work, broken arrow. So? Just fix it. It's a simple enough example. In any case, both cases were just quick examples and quite possibly have bugs, etc.. I can't look at the code for either at the moment, but they should demonstrate how to handle the array "in place" by replacing and rotating. This should have good performance, as you're only allocating the memory once (or twice, since it's also going into the indicator, but you can't avoid that). Quote Link to comment
mross Posted August 23, 2008 Report Share Posted August 23, 2008 QUOTE (Raymond Tsang @ Aug 21 2008, 05:46 PM) The first didn't work, broken arrow. The second one is fine but this is just doing what i called "manipulations of a huge array".I'm not sure if i understand your suggestion correctly... Are you saying that I can treat individual points as separate plots with different t0? Afaik, there is only one t0 value for each plot, right? May I have a screenshot? Ray When you get a broken arrow you need to investigate its cause and see if you can fix it. Pick on the broken arrow and you get an error summary. If you pick on an error in the summary it will take you to the instance and location on the BD where the error occurred. The summary will provide information about what is wrong and ways to fix it. This is a very good system and you must try to use it. If you have trouble fixing a particular error. At least copy the information in the error summary and describe the step you took to try and resolve the problem. You will find that this a very instructive way to learn the proper use of LabVIEW. Mike Quote Link to comment
LAVA 1.0 Content Posted August 23, 2008 Report Share Posted August 23, 2008 QUOTE (Raymond Tsang @ Aug 21 2008, 05:46 PM) The first didn't work, broken arrow. The second one is fine but this is just doing what i called "manipulations of a huge array".I'm not sure if i understand your suggestion correctly... Are you saying that I can treat individual points as separate plots with different t0? Afaik, there is only one t0 value for each plot, right? May I have a screenshot? Ray Please see here and here for screen shots and here to read what Greg McKaskle had to say abou this topic. Have fun! Ben Quote Link to comment
Raymond Tsang Posted August 23, 2008 Author Report Share Posted August 23, 2008 QUOTE (neB @ Aug 22 2008, 10:05 PM) Please see here and here for screen shots and here to read what Greg McKaskle had to say abou this topic.Have fun! Ben Thanks! Fascinating! Ray Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.