LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Aaron_KZ

XY chart

Status: New

I would like to have an XY Chart that has the same functionality as the Waveform Chart, but with x and y inputs instead of just the y.  The XY Graph is not efficient to be used inside of a loop, mainly because it redraws the plots each iteration, and I've had a hard time trying to make a buffer that is as efficient as the waveform chart.  The Waveform Chart does not allow you to define the x-axis as anything that is not an interval.  For example, I might want to plot pressure vs. flow rate.  Many customers also request the ability to change the sampling rate during an experiment.  this would be much easier to handle with an XY Chart.

It would also be nice to have the buffer size included in a property node.

It would also be nice to have the ability to change the size of the graph palette.

It would also be nice to have the nearest plot coordinates (x and y values), or interpolated values, to mouse movements over the plot area as a "visible item" in the shortcut menu (this should show a dot over the plot's trace)...  I've done this with an X Control, but I'd like the ability built into the new XY Chart on a lower level to improve effiecency.

 

9 Comments
X.
Trusted Enthusiast
Trusted Enthusiast

Check this.

X.
Trusted Enthusiast
Trusted Enthusiast

Sorry, it looks like I did not paste the link: here it is. Just to say that a search with "History Length" returns a long list of old threads about similar topic without the slightest reaction from NI. And that may be because it is so easy to write a (growable) circular buffer . As far as the other cosmetic issues you mention, I think they are distinct from that one.

Coordinates can easily be obtained via:

 

ScreenHunter_001.jpg

 

(watch out for scales if you use multiple). I am sure you are aware of this possibility, and since it is not quite clear how a "native" coordinate display should be implemented, it would appear just as easy to use the above (IMO).

donkdonk
Member

I always wondered why this so VERY VERY obvious thing is not implemented. I know the "it's so easy to build a growable circular buffer argument", but hey, this chart functionality is SO basic you would expect it in LabVIEW 1.0!

So I suggested this 12-29-2009 (however my title is not that clear).

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Charts-with-quot-non-evenly-spaced-quot-timestamp-per-...

So I think this idea is a duplicate.

 

But I am happy I found a soulmate Smiley Happy

Mads
Active Participant

It's amazing how few kudos this idea has received. There are numerous implementations of it by users so it's obviosuly in demand. But (surprisingly) they are *all* (at least the 5 I've found on the web so far) building the history one element at a time (continous build/delete operations on arrays? Nooo!) so the performance of those implementations is bad. Nor are they polymorphic. Full polymorphism is hardly practical to maintain with the methods available to LV developers; doing it in the source code of the control is much better.

 

So kudos to this idea. I've wanted such a chart many times. Sure, I can build one myself using a circular buffer that is preinitialized to its full size (and I have; I just do not consider it a chart anymore then). But the whole point for me when I'm grabbing a chart control on the palette is to utilize the native (and always available whereever I am) chart's in-built history to get a job done in the absolute minimum of time. Let me feed that chart an XY-set of data and I for one would be happier.

Mads
Active Participant

A related idea got an interesting reply though; it seems the waveform chart does accept XY data after all:

 

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Simple-chart-with-time-as-X-Axis/idc-p/1253238#M7802

 

 

Aaron_KZ
Member

Yes, you can certainly use the waveform tools to manipulate the waveform chart (image is good example of Mads's post):

original.png

However, the chart still has issues with negative X values and I haven't figured out how to draw vertically, like, say a circle, for example (can't get plots over an X value that is already passed).  My suggestion should allow this to happen just like an XY graph, only more efficiently if showing the plots update each iteration.  How about trying to make a vertical chart?  I know a few industries that use vertical charts for many applications.  You can't tell me that NI isn't interested in making MORE money in the Oil and Gas industry than they already do...  lol

An XY Chart should make vertical charts an easy implementation too!

 

Aaron_KZ
Member
Aaron_KZ
Member

And another thing,

Charts will automatically jump to the latest plot even when Autoscale X is turned off.  If zoomed in and scrolling back in history, as soon as you let go of the scrollbar the viewing area jumps to live data.  Therefore, the operator must continue holding the mouse button on the scrollbar to view the zoomed in history, which does not allow the user to do anything else (this is VERY annoying). Options like deferring the front panel updates while the mouse is over the scrollbar also limits the analysis, because you have to move off of the scrollbar to use the graph palette.  I have tried making a button that makes an XY graph appear over the chart with the history loaded into it for analysis, but the customer didn't like it very well because they wanted to manipulate the viewing area AND see the latest values updating.

 

Updated request for XY Chart:

- X and Y inputs can be wired exactly like the XY Graph, but efficient within a loop (without the Build Waveform function).

- Add property node for Buffer Size (Chart History Length added to property node).

- Resizable graph palette.

- Always show a dot and tip strip with X & Y values for the closest plot to the cursor position while over the chart area.

- Prevent jumping to the latest plot added to the chart while Autoscale X is disabled.

- It would be VERY cool if a visible item could be turned on to show where the viewable area is compared to the entire history of plots (like picture below):

Drawing2.jpg

 

wiebe@CARYA
Knight of NI

This got some renewed interest from this thread.