Graph XY lasso data points

Hello. I am looking for a way to draw several XY cursors, then use a lasso (like paint or photoshop) tool to select a subset of the sliders.

Lasso would allow the user to outline to draw a region with the mouse to select cursors within the lassoed area.

Labview graphics can do this natively? Or maybe someone knows an elegant solution to achieve this?

Hi Marksyn,

No, that behavior is not native in LabVIEW.

First off, the selection can be rectangular, or should it be a "freeform"? The latter will be much more difficult to write, but it could look like this.

Build an event structure and case of mouse event down / mouse upwards (to keep track of when you press the button) and mouse move the XY graph. In the case of mouse move, LabVIEW returns the coordinates of the mouse control panel each time it moves. For the XY coordinates, use a node to invoke the graph with the method "Panel of XY coordinates." Make a list of all the XY coordinates until the mouse button is released. This table is your free form boundary. The tricky part now is to get a list of the "sliders" (or do you mean data points?) included in this limit. Let us know when you make it that far.

Tags: NI Software

Similar Questions

  • When zoomed in on a waveform graph, how can I get all of the data points that is currently displayed on the graph?

    I use X-zoom tool on the graphic palette. In this chart, the x-axis are time. Thus, for example, if I have 30 seconds displayed on the x-axis of the complete graph, and I want to zoom in on the Middle 10 seconds, how can I get the axis y data points that correspond to this average 10 seconds?

    Similar to Cory's suggestion, could you use the X - Scale-> range-> the Min and Max properties to retrieve the appropriate data?

    Maybe even link your sweater of data for the range of scale change event?

  • Numbers - graphs and charts - how can I add notes to individual groups of points of data or data points in a series.

    I use a 2D line chart to show the status of my weight loss I will give my doctor.

    I want to select a group of data points, or individual data in the notes to table and place the points or the labels on them so I can identify things like water weight loss, the consumption of food and splurges, and so on.

    Thank you, Eric

    There is no such feature.

    You can, however, add a column to the table where you enter the data and make this new column 'Notes' or 'Description '.

    You can also use the arrows and other graphic elements in the menu "Shapes" to highlight specific items of interest.

  • A data point pixel position

    Hi all

    I would like to know where is the location of the mouse position to a point of data compared to the graph. basically, the opposite of this person's job action:

    The point value of graphic display WPF overview

    http://forums.NI.com/T5/Measurement-Studio-for-net/WPF-graph-display-point-value-on-hover/m-p/243395...

    Instead of getting a data point, hold the position of the mouse. I am the superposition of the shapes on the chart and would like to know for a specific point in the graph in pixel coordinates.

    Thank you.

    Of after your question, I assume you have a data value you want to translate (as opposed to an event arguments of mouse, which already has a GetPosition method).

    You can use the DataToScreen to get a position of the screen in the plot area, so use DesiredPlotAreaMargin to compensate for this position on-screen to reference external graphic control (i.e. point.X += margin.Left; point.Y += margin.Top ).

    You can also use the DataToRelative to get a relative position of a data point, then place an object in the Children collection (a bit like a PointAnnotation ):

    XAML


    xmlns: or = "http://schemas.ni.com/controls/2009/xaml/presentation."
    xmlns:niPrimitives = "http://schemas.ni.com/controls/2009/xaml/presentation/primitives".
    ...



    Width = "10".
    Height = "10".
    STROKE = "Black".
    StrokeThickness = "2".
    niPrimitives:RelativePanel.RelativeHorizontalAlignment = "Center"
    niPrimitives:RelativePanel.RelativeVerticalAlignment = "Center"
    />


    Code


    Parent = graphic point. DataToRelative (dataValue);
    RelativePanel.SetRelativeHorizontalPosition (dataMarker, relative. (X);
    RelativePanel.SetRelativeVerticalPosition (dataMarker, relative. Y);

  • Sampling rate - too much data points

    Hello community,

    I use a sensor signal strength of pressure on DAQmx labview through 2014. My rate from the hardware synchronization function is 50 KHz. The samples per channel of timing and read screws are the same set to 5 Khz when the channels are a continuous sampling. The problem I'm having is that when I run labview for a few seconds, say 5 seconds, I'm half million points of data. I tried to run for 10 seconds and points were more than a million where it is difficult to analyze. I think that the vi generates too much data points and the buffer is large. Am I wrong? Can you please help me solve this problem?

    Kind regards

    Mike

    You are now ready to learn a little of the power of LabVIEW and data flow programming.  LabVIEW is an inherently parallel language - two loops can run independently and in parallel, allowing you to make time-sensitive (such as sampling data) and a lot of time (such as data logging and tracing) at the same time, using queues to pass data between the loops and ensure the buffering required.

    If you open LabVIEW and click on the file menu in the toolbar, and then select new... (the points are important!), you will be able to create new ones (VI) from the model.  Choose a Framework, Design Patterns, producer/consumer Design Pattern (data).  It's what you want to do.

    You basically set up a "pure DAQ Acquisition Loop" (without logging TDMS) as producer, creation of 5000-element arrays of data every tenth of a second (if you are sampling at 50 kHz).  You create a queue of data outside the loop of producer whose elements are an array of 1 D of waveforms (the output of your Read DAQmx) and instead to send the data to a waveform graph, you put it in the queue.

    You are under this loop, a parallel loop that gets the same queue and remove items.  This loop will be sitting idle (no time taking CPU) until the data is queued.  He then it takes away the poster and registers (logs) in a PDM file.  Either way, you should open the TDMS file before entering this loop (consumer), write to the file inside the loop and close the file when the loop exits.  Study the example of the VI, you create with the model and see how it works.

    The beauty of this is that you can certainly 'keep up' with the writing of the data points in a TDMS file to 50 kHz.  You might not be able to display all the points, but there is nothing to prevent you from data processing (by, say, decimating or "block average" it) to a more 'user-friendly' display (your eyes ' sees' a 50 KHz signal?) -you have a set of 100 msec prior to the next package arrives in the queue.  Also note that the loop of producer probably takes very little time CPU - most of the time the material is waiting for its clock to 'tick', collection of points in a buffer, then transferring to the loop.

    Now you can have your cake and the computer display, too.

    Bob Schor

  • How to write graph of waveform data to text file with the option to the user to do

    So, I'm new to labview and will have bad to write a program in particular.  I have a waveform graph that runs for 120 seconds, generating a sine curve.  I am, however, having a time difficult get the program to write the x and are coordinated in a text file.  I've attached what I have so far.

    The first task I was assigned was to write a program that creates a curve of snusoidal on the front panel by adding a data point every half second for 120 seconds.  The plot should starts only if the user presses a button to start.

    The next part is to give the user an option to write the data generated in a file of worksheet called 'sine.txt '.  The file name and location should be hard-coded.  The file must contain the x and there contact information of each data point in columns separated by tabs, also known as the delimited.

    I spent several hours refining the attached program, and I can't seem to make it work right.  Any suggestions would be helpful at this stage.

    Sincerely,

    A student of chemistry frustrated whose research mentor is out of town

    First, you create files Excel.  You create text files.  And it seems that your writing on a file already created X (time) vs Y (curve of data) that is delimited by tabs.

    All you do is simply too complicated or a Rube Goldberg.

    All you need is the joint.

  • recording of data points over 6 million deposit

    Hello

    I try to save all my data points of tension, plus 6 million points, I've gathered using DAQmx LabView functions in a file. The code I did works very well and will be traced all points on a XY graph, but when I try to export field data in a txt or excel file LabView wants to close. I understood how to use the functions of PTM in the toolkit features LabView and it prevents the program from closing; However, it will return a set of data points, but not all the data points. I was wondering if there is a way to divide the data into small amounts and record into several files. I thought maybe I could get my data points index in different table rows and save each line in a clean file but I don't know how fast the program can create and save new files. Any suggestions? My sampling rate is ~ 412 714 per second over a period of 15 seconds and I collect samples total 6 190 708.

    Know / do you understand the concept of stream, Central of LabVIEW?  A data flow consequences, is that if you have two loops While not connected in series to each other (i.e. you do not have an output of a session at the entrance to the other), they will both run in parallel, 'sharing' of the CPU.  So if a loop is the acquisition of data from a DAQ card, which means that if card is programmed to deliver 1000 points to 1 Khz, that loop basically 'wait for' maybe 998 milliseconds, then switch 2 milliseconds delivering 1,000 points (it's probably even faster than that).  So, if a loop requires 2 milliseconds per second, which leaves 998 milliseconds per second of time CPU for the loop to do everything he needs to do.

    This is the "magic" behind the producer/consumer model.  Both loops are connected to their entries by a queue, so that they can operate in parallel.  The producer, when he gets his 1000 points, put simply all points on the line and it's done.  Points "travel" in the queue (if you want to think about it this way) on to the consumer, where they are removed ("reconstituted") and then plotted, written to the disk, FFT would or whatever during the "copious free time" remaining after the producer had its aliquot.

    Bob Schor

  • Graphical waveform data points, the performance impact to no.

    Hello

    I searched the forum, but I have only partial information yet about this behavior of graphics WF.

    I have a TAB control on the façade, and a TAB page contains a WaveformChart. I traced points with speed of 0.5 Hz, and I have 8 (curves) plots on the chart.

    I would like to have a lot of history, so I put the length of the graphic history to 44000.

    Everything works as expected, but I see some sluggish behavior, when I click on another TAB page and return to the page of the TAB where the table.

    In this case, the appearance of the graph takes about 1 to 2 seconds. This isn't a big problem, since the user typically controls the last minutes of ~ 10 (X-autoscale deactivation and change left "border" time). When this small amount of data points are visible on the graph, the new TAB page is fast after the click of the mouse. When several hours of data is presented, it's slow.

    I guess the main reason for this behavior, it is that, when I switch back to the graphics TAB page, the OP system has to re - draw a large amount of data points, and it takes a lot of time?

    I'm curious what is the 'best practice' in such a scenario? Shell I store data in a shift register and use an XY graph (I actually have data points such as the double and the corresponding time stamp, there are small fluctuations in time, so I need all THE timestamps)? Would it be useful? So I could add the new XY data point in the array in the register shift, and I redraw the graph at each new stage?

    Thanks for the tips!

    I don't know if this applies to your situation, but sometimes the LV refreshes no lights front panel which are not visible on a tab page that is not in front. Table has its internal buffer, but I have no idea how them redraws is managed at many points to accrue though not.

    A graph redraws the data are written on it because you have to write all the data each time each time. With SHIFT register approach the graph would only see the most recent data when it becomes visible, so it seems that it needs to be adapted.

    Another thing: your chart or table has no 44000 pixels along the x axis. LabVIEW will reduce the number of pixels to display the data. That takes some time too. Using the registry approach change, you can manage the data introduced to the 500-1000-2000 pixels will display your chart. This eliminates the need for BT to do and you can order the method: on average, decimate, sliding window and so on.

    I'd go with the registry to offset and graph.

    Lynn

  • move the data points on the waveform display

    Hello

    No idea why the waveform display to my VI has shift the data points? The third tab of the screen does not display this problem. I took a video of what happens to better illustrate what I'm talking about and attached my VI to identify the problem.

    I am currently a sample of data from a DAQmx and storing in a queue until data backup button. Everything works well, but the problem is the display of actual data, which, although sense points, it shows move in a small area around where they are drawn in the first place. It happens even when I erase the visible data and restart the collection of data, as shown in the video.

    Thanks for any help you may be able to provide.

    Guy

    The amount of data you draw? If you draw a lot more datapoints that there are pixels on the x-axis of the graph, you can get peaks that appear to move because of graphic interpolation LabVIEW has to do.

    Mike...

  • Values of the data point on the cards

    How to display the values of the data point on the graph? They show the overview, but I need them in a printed version.

    Use the cfchartseries dataLabelStyle attribute.
    For example: dataLabelStyle = "value"

    See:
    http://livedocs.Macromedia.com/ColdFusion/7/htmldocs/00000228.htm

  • Is is possible to add a data Point to 'Stand hours?

    Hello

    I tried to add a data point to my hours of support in the application of health. I discovered, that 'stand hours' is the only category where the button "Add data Point" is missing. What is a possible way to add hours on another way?

    I'm not allowed in the place where my watch at work, where I am standing approximately 11 hours. Caused by this, I am not able to reach my goals.

    Hello

    It is not currently possible to manually add the credit toward the daily goal of Stand to your Apple Watch.

    If you want to suggest that Apple considers adding this as a new feature, you can do it here:

    https://www.Apple.com/feedback/watch.html

  • How can, during the collection of data, start a new column in my table every 100 data points?

    Hello! I have a problem with my data - I get in a wide range of 1 x 1000, but it's the repeated measures, each taking about 500 data points. I want to break this table for this data string start a new column in my table every 500 points given. I don't know how to do it-please help!

    datacompiler100 wrote:

    Hey thanks for the sponsor and the first off I must apologize for the State, I am attaching my VI. I put the part of the VI that I am working on (my team has access, so didn't post everything here) and also attached the data file (when just written in a spreadsheet file, not through the attached VI). I want to convert the long row of data and then start a new column every 50, 100, 5 points (user-defined).

    Using the data from the file, you can reshape everything simply (as you already!), followed by transposition (since you want columns instead of rows). 2D arrays must always be rectangular, so the last column is filled with zeros if necessary. Is that what you want?

    Of course if you try to add a new column in a file, that will not work. You can only add lines in an existing file because of the way the data is organized. To add columns, the entire file must be read, intertwined and all re-written new data in the file.

  • Flags Data Points: copy - lack of flags?

    I use DIAdem 2012 to extract a FFT points. Whenever I use the function ' copy of flags Data Points: "created channels are missing the last point data (flag). in other words channel contains n - 1 points.

    For the moment, I add an additional indicator to make sure I have copy all the flags that I really need, but I got apprcieate all the tips, I can miss something obvious... I have attached a screenshot.

    Thanks in advance!

    Padraig

    Hello

    Thanks for posting. I confirm that you are able to put all the flags you need, but that all those flags don't get copied? If that's what you do, you then select flags more than necessary, then copying all the? You may need to browse to re - select indicators and copy them, then start again.

  • several data points Boolean indiacator

    I run a program (which I'm still trying to work the kinks log data on) where I need to take several different channels and give me a warning if the temperature exceeds a certain limit. I'm 7 channels linking fieldpoint in a picture and sending it to a curve of waveform. I want each of these signals during playback to trigger a Boolean indiactor (LED) if the ambient temperature is more than 83. Ideally the temperature will be much higher later so I'll use it for fire tests (e.g. 1600) and it is very important that I get this down before we use the .vi in the fires of the test.

    For some reason, when I write to spread sheet file, I get 1 column of the last data point are met. There is also no time stamp on the left most column. I need to ensure that data are collected on every second and is stored in this file.

    I was also wondering if anyone knew how to change the names to write to destination of the spreadsheet (the gall that you create) file once instead of put the path in there. Finally, we will run several tests and we do not want to replace all the tests by accident. Please if someone could help with anything that would be great. Thank you!

    Tanya

    PS works with version 8.6

    Well, we can discuss one thing at a time. First of all, it is a way, you could do the evaluation of Boolean values.

    I think that I would split the data collection and processing of data in two loops. Have a loop that takes just the data and another that processes the data. This will also allow a state machine architecture. That would leave you do checks if a file exists before you leave and a few other things.

  • With an average of data points

    Hello

    My setup is run by labview and wishes to reduce the noise associated with my data by taking more medium.

    I would like to have the medium-sized data points and taking the average of them and save only the average at the same time the experience is

    instance. For example. My experience is voltage vs field. For each field, I want three readings of voltage and the software must calculate the average, then

    Enroll in the average in the data file. The reason why I do not repeat the measurement, it is that it would take some time to do it this way.

    Can you advise how to do this with labview.

    Thank you very much

    Hi Alain,

    Take a look at the attached vi. I think that this will solve your problem. It takes the average of the 3 simultaneous values of an array of random number and saves it in the txt file that you need.

    Kind regards

    Amine31

    (Bravo to give good answers, mark it as a solution if your problem is Sloved)

Maybe you are looking for

  • Major problem of disk utility, think I have bricked my MB :(

    MacBook Pro 2014 Please help with this, I don't know how I managed to spoil it. What can I do to fix? Did a clean install and tried to erase the disc. Yes I know I'm a total fool... to try to create a new empty but still fails with etc - 61. I'm out

  • Satellite C850-B519 - the hardware specification

    Hello world I used to know more details on the RAM, processor, card mother cpu - z... .etcBut when I got in the name of the motherboard it was "Type 2-Board 1 vendor name", so what?I searched a lot about this, but I found nothing... I want to know (t

  • Firefox follow a few links. It creates a new tab titled (GIF image of 1 x 1 pixels) instead.

    When I click on certain links like link 'advertising' on the home page of Google, a new tab is created. The tab is empty and titled (in this case) ads_3.html (Image GIF 1 x 1 pixel). I noticed that this happens more frequently. When I try the same li

  • Qosmio x 300 - no option of dual display using analog

    Have plugged an analog monitor. I can get an image on the analog monitor or laptop LCD, but I can't it to appear on both, i.e. double - extended display either office or clone.I have a Qosmio (a regret since buying it because of all the problems it h

  • Desktop HP pavilion - 588-400 h: upgrade graphics card

    I want to upgrade my graphics card, but I don't know if my motherboard is suitable for it My computer Desktop HP pavilion - 588-400 h mother Memphis2-S pass map of the screen upgrade to 960 GTX or GTX 560 thx for the help