3D point plots in HiQ

Hi all,
I want to plot in a 3D cartesian graph a list of (x,y,z) points, in order to visualize clusters of data.
Apparently, 3D graph in HiQ can plot just z data orginized in array, meaning that you have to assign z values for all the combinantions of x and y.
For example, how can I plot
(1,1,1) and (3,3,3)
as two single points of the 3D space?
Thank you for your help.
Roberto.

If you want just a point cloud, there are better libraries like PCL that can do this more effectively. To export the reconstruction point cloud information:
https://social.msdn.microsoft.com/Forums/en-US/d49cc1a8-324e-4069-8bc6-23afa2e0d9ed/extracting-point-cloud-data-using-kinect-fusion-api?forum=kinectsdk
Carmine Sirignano - MSFT

Similar Messages

  • How do i get a xy graph to plot more points?

    I'm using the Build xy graph express in Labview 7.0 and I was just wondering how one could increase the amount of points plotted on the graph. Right now, the graph will just plot up to 100 points and then go crazy and go back to 0. I would just like to know if there's any way to increase the amount of points that could be plotted on the graph.

    An xy graph will plot exactly the number of points that are in the x and y array. That's assuming that you have the x scale set to autoscale. And, by default, each time the function is called, the graph will reset. You can select properties and change this. You don't mention where you're getting the data. Stick a probe on the input to the express VI and check the size. You can also provide some details on what you're doing or post your VI for someone to look at.

  • XY graph multi plot live points and colour control

    Hi All,
    I'm trying to do something that should be simple but is proving to be difficult so far. I have had a good look through previous topics and found things similar but not actually what I want.
    In my experiment I scan intensity vs wavelength.
    Ideally I want to be able to:
    1)  run a scan and see the points plotted live.
    2) Then I want the plot to stay on the graph when I run the next scan, etc.
    3) I'd like to do an arbitrary number of scans. e.g. To initiate a scan I press a button, an arbitrary number of times.  
    4) I want to make it so that the current scan is plotted live in one colour (red), and all the previous scans remain plotted in another colour (blue).
    5) Sometimes I may want to clear the graph of all scans and begin again, without having to stop the VI.
    Items 1-3 can be taken care of easily by placing the Build XY graph and XY graph object inside the for loop that runs the scan, and unticking 'Clear data on each call' in the propertes of Build graph. See first attached VI.
    However, at the beginning of a scan it joins the last point of the previous scan to the first point of the next scan.
    The difficult parts are 4 and 5.
    For item 4 you need to build an array of plots, which is easy if you know the number of plots, but here the number is arbitrary. So how do I do that? I've had a go by trying to use Insert Array in different ways but I haven't worked it out. Then hopefully using the XY graph property nodes I can set the colours of the plots.
    For part 5 it is not enough just to use the invoke node = reinitialize to default, and have a button that executes the node. This clears the graph but then when you run the next scan all the previous plots pop up again, indicating that the array that stores the plots is not actually cleared. The second attachment shows how I'm clearing the graph.
    My biggest problem is item 4, and combining item 4 and 5 together.
    Please help. 
    Solved!
    Go to Solution.
    Attachments:
    Current method_Items 1-3.vi ‏18 KB
    Item 5 idea_with no item 4.vi ‏18 KB

    The key is understanding the data type. If you hover over the graph's terminal, you will see that multiple plots are simply an array of single plots. Once you know that, something like this quick modification is fairly easy to come up with. I also added events to make it more readable. Note that this isn't actually a good way of doing things (for instance, you can't abort the drawing in the middle), but it shows the graph concept. You might wish to look at some code like producer/consumer designs.
    As for the colors, you're right that the properties can help you there. I will leave it to you to figure out the exact properties, but when you start a new plot, you will basically want to reset all the others to white and make the new one red.
    Try to take over the world!
    Attachments:
    XY Chart.vi ‏17 KB

  • How do I find the total number points per plot on a CNiGraph?

    There dosn't appear to be a method in CNiPlot.

    Hey wingnut,
    When you plotted to the graph you passed an array of data to it.  Or you passed one point at a time to it.  Basically what Chris is saying is that you need to retain this data somewhere and count the number of points plotted. 
    Regards,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • How can I update single plot in multi plot xy graph?

    Hi all,
    I'm working on an HMI "front" for a larger acquisition/analysis system, that includes continuous performance monitoring of a turbine. The results of the measurements are stored arrays of contour lines, that represents turbine efficiency and guide vane openings. This analysis is all performed in the background. In the HMI, the performance data is loaded from file when the specific "report" is requested, and is plotted in an XY graph. I would like to indicate the current operation point of the machine by using a plot that is a single point. Thus, that point's position among the contour lines indicates the current performance of the turbine. This point is updated once every second, while the performance data remains the same for considerable amounts of time between recalculations (days to weeks). 
    Is there any way of updating the value of a single plot in a multiple plot XY Graph without having to redraw all the plots?
    I've tried using the "Active Plot" property, which doesn't work. 
    My current solution is to keep all the data as input to the executing while loop and replace a subset of the plot array, but that of course requires the entire rewrite every time the operation point plot is updated.
    Best regards,
    Jarle Ekanger, MSc, CLD
    Flow Design Bureau AS
    Solved!
    Go to Solution.

    You cannot redraw a single plot. If you want to update a single plot, you need to retain all plots in a shift regsiter and replace the data of the desired plot. However, your problem seems much simpler than that. To show a single point on a nearly static plot you have several options.
    You can use a cursor that is controlled programmatically (the style can be a point, don't allow drag).
    You can use annotations.
    You can use the "plot images" feature that allows you to use image commands to draw anything on top of a graph.
    None of these ideas require a redraw of any data.
    I think the cursor idea is probably the easiest and most appropriate. Just use a property node with the following properties:
    active cursor
    cursor position x
    cursor position y
    LabVIEW Champion . Do more with less code and in less time .

  • Scatter plot question

    I have the new NUMBERS app (3.5.2) on my Mac.
    I want to plot X and Y data points. I think this is called a SCATTER PLOT.
    But all data points in the graph are one color/ one symbol. See below. For 3 data points this may be fine BUT I have 50 data points.
    I want to be able to have different colors for each data point plotted in the graph.
    If I create a table of data as per below image, would this solve the issue? If so, what type of graph do I plot?
    I have tried lost of variations and even in EXCEL but nothing seems to be graphed.
    Thank you.
    Michael

    This is how charts work. That includes Numbers, Excel and other spreadsheets.  A column of values is called a series and all data points for a series will be the same color.  I think it will be difficult to tell the variation in colors for 50 different colors and it will take a while to create it. I believe Numbers starts repeating colors after a while (I can't remember how many series before it repeats)
    Assuming your first column is your X values, keep that column as a single column like in your first  screenshot.  Each data point that is currently in your second column will need to be in its own column (but on the same row as before). You may have to  "Edit Data References" on the chart and select to plot columns as series (found at the bottom-left of the Numbers window) or it will assume you are plotting "rows as series". And you will have to manually change the colors of nearly all the data points on the chart if you want 50 different colors.

  • Plotting Senderbase Information on a World Map

    Greetings,
    I have whipped up a quick script some of you may find useful.
    ip2mapplot.py is a Python script for resolving a number of IP addresses to latitude / longitude coordinates and plotting them on a world map
    Below is an image generated from one days worth of Senderbase drops on our Ironport MGAs:
    [img:f531ef1b7c]http://insecure.io/images/a/a6/Map_sbrs_small.jpg[/img:f531ef1b7c]
    Source code is available here: http://research.mince.ac.nz/ip2mapplot.py
    Further instructions here: http://insecure.io/index.php/Code/ip2mapplot
    Cheers,
    si

    Here's what our map looks like with one week's worth of data on hosts with a SBRS of -10 to -4.
    [img:c91b0e4b2a]http://web.acd.ccac.edu/~bpoyner/ironport/ironport-map-small.jpg[/img:c91b0e4b2a]
    [+] Found 691344 unique IP addresses
    [+] Determining unique latitude / longitude points
    [+] Plotting 15037 discrete points on map
    [-] Plotting 14098 points for x < 100
    [-] Plotting 772 points for 100 < x < 500
    [-] Plotting 131 points for 500 < x <2500> 2500
    I don't know if anybody else ran into this issue, but as-is the script provided by si doesn't work with python 2.3. You'll get the following error message:
    [+] Determining unique latitude / longitude points
    Traceback (most recent call last):
    File "./ip2mapplot.py", line 41, in ?
    latlon = count.partition(',')
    AttributeError: 'str' object has no attribute 'partition'
    You have to change partition to split, and change the latlon array reference accordingly.

  • Change color spectrum orientation in 3d plot

    hi,
    I have a 3d plot:
    x-axis = wavelength
    y-axis = angle of reflection
    z-axis = intensity counts
    the 3d surface is colored like the spectrum, now i want to rotate the color orientation, that it corresponds with the wavelength, but I do not want to change the axis. thanks.
    Attachments:
    spectrum - reflection 3d.llb ‏980 KB

    Hi Robert,
    This is not as easy as right-clicking...
    I had posted a crude (er messy?) example that shows you how to define the color of each point plotted in 3-space.
    The following link shows the result of doing a parametric plot using this method.
    http://forums.ni.com/ni/board/message?board.id=170&message.id=84079&requireLogin=False
    Look fo rthe LAST jpg I posted.
    Unfortunately, I could not find where I posted the code. I needed Molly's help to get it posted because it was a 4 meg example.
    What you want to do is use a custom color map and use the "w" vector to specify the color of the points. The values passed via the "w" vector must match up with your custom color scale.
    Maybe someone else knows a better way. I'll watch for updates.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • 3D Plot Custom colormap

    I am confused at how the custom colormap works.  If I select point plot and graph a few points it seems the colors of the points maps one-to-one to the colormap.  See the VI and select point as the plot style.  The first point is red, next is purple, then blue.
    However, if you select surface and do the plot of a surface it seems like it maps the colormap based on Z value?  Try by selecting cwSurface as plot style.
    What I am ultimately trying to do is plot a HSL colorwheel as one plot and then HSL points as the other plot on the 3D plot.  I can generate the points but I am having trouble with the colorwheel.
    Also, is there anyway to have the projected point be a different color type than the actual point?  Any help would be appreciated.
    John
    Attachments:
    3D Plot tester.vi ‏2615 KB

    Hi John,
    Starting with reply #7 of this thread
    http://forums.ni.com/ni/board/message?board.id=170&message.id=143663&jump=true
    I offer a "worst case" 4-d graph example.
    Please read through that thread, down load the example and play with it a bit.
    It sounds like your "ColorMapStyle" is not correct for what you are trying to do.
    Here is a preview of that example.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Waveform graph number of points

    Hi,
    In my app I´m receiving data (a 10Hz sine wave) continuously (serial port) and plotting it on a chart and on a graph. After several number of points plotted, about 18000, the sine wave appears wrong on both waveform chart and graph. Is it a problem with memory?
    Thanks,
    Celia 
    Attachments:
    plot.doc ‏195 KB

    Hi Celia,
    the vi seems to be ok.
    But as I told you before:
    You collect your data in the "array" by using "build array" function - this is ok so far. The you feed those data to the "array" indicator - and also to the "waveform chart". And probably here is the problem: You feed the chart with an array when you should only feed the single values! The chart has it's own memory called "chart history" (you set it to 250 values)!
    The more values you collect the bigger memory blocks LabView has to allocate/calculate/move in RAM! And you keep on moving memory blocks from shift register to "array" indicator, chart AND graph. All three indicators have their own memory copy of the data, and in each iteration LabView has to allocate bigger memory blocks for each indicator. This takes it's time...
    And due to this behaviour the iteration time is getting longer resulting in "undersampling" of your sin wave...
    When you need constant iteration time, you should separate DAQ and display into different loops connected by queues. There are plenty example coming with LabView and also here in the forum!
    I added your vi, slightly edited. Read the comments in the last frame! (You don't need a sequence here, it's all in the dataflow )
    Message Edited by GerdW on 09-18-2007 09:42 AM
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome
    Attachments:
    RecWaveChart2.vi ‏95 KB

  • Large data plotting

    I know this is a bit of a loaded question, but hopefully there is some knowledge that the java gurus can share.
    We have a current non-java solaris only implementation of a plotting program that does "Simple point plots". It reads from a file and, it has a calculated axis, colored points, and the ability to zoom. Now the data sets are very large, they can get upwards of 250,000 to 500,000 points with the average being around 30,000 points.
    The solaris plotting that we are trying to mimic is XRT. It can load and handle files that huge, and there are no repainting problems, once it is loaded, there is no noticable repainting probelms.
    The goal now is do it in java, and have it work on Windows also. We choose JClass, since it is the corresponding java implementation of XRT.
    JClass is just to slow. It can load files that big and display the plot, but repainting takes an unuasable amount of time. Maybe even a minute.
    The main question is ... is it going to be possible to get the performance we need out of a Java2D implementation, my guess would be no.
    If you think it can be done (repaint at least under a second) then what improvement suggestions would you offer.
    I you don't than what C based plotting or other solutions could be offered.
    Thanks for the time!!
    P.S. I will add more dukes, if the answers roll in.

    Sure, see below. The only proviso is that I used the latest CVS code, which has changed a bit since the last official release (0.9.13). A new release is expected in the next few days, so if you are not in a hurry I'd wait for that. Alternatively, check out the latest code from CVS at SourceForge:
    http://sourceforge.net/projects/jfreechart
    Anyway, here is the code for the demo app:
    /* ======================================
    * JFreeChart : a free Java chart library
    * ======================================
    * Project Info:  http://www.jfree.org/jfreechart/index.html
    * Project Lead:  David Gilbert ([email protected]);
    * (C) Copyright 2000-2003, by Object Refinery Limited and Contributors.
    * This library is free software; you can redistribute it and/or modify it under the terms
    * of the GNU Lesser General Public License as published by the Free Software Foundation;
    * either version 2.1 of the License, or (at your option) any later version.
    * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
    * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    * See the GNU Lesser General Public License for more details.
    * You should have received a copy of the GNU Lesser General Public License along with this
    * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
    * Boston, MA 02111-1307, USA.
    * FastScatterPlotDemo.java
    * (C) Copyright 2002, 2003, by Object Refinery Limited and Contributors.
    * Original Author:  David Gilbert (for Object Refinery Limited);
    * Contributor(s):   -;
    * $Id: FastScatterPlotDemo.java,v 1.4 2003/11/12 12:18:07 mungady Exp $
    * Changes (from 29-Oct-2002)
    * 29-Oct-2002 : Added standard header and Javadocs (DG);
    * 12-Nov-2003 : Enabled zooming (DG);
    package org.jfree.chart.demo;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.plot.FastScatterPlot;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;
    * A demo of the fast scatter plot.
    * @author David Gilbert
    public class FastScatterPlotDemo extends ApplicationFrame {
        /** A constant for the number of items in the sample dataset. */
        private static final int COUNT = 500000;
        /** The data. */
        private float[][] data = new float[2][COUNT];
         * Creates a new fast scatter plot demo.
         * @param title  the frame title.
        public FastScatterPlotDemo(String title) {
            super(title);
            populateData();
            NumberAxis domainAxis = new NumberAxis("X");
            domainAxis.setAutoRangeIncludesZero(false);
            NumberAxis rangeAxis = new NumberAxis("Y");
            rangeAxis.setAutoRangeIncludesZero(false);
            FastScatterPlot plot = new FastScatterPlot(data, domainAxis, rangeAxis);
            JFreeChart chart = new JFreeChart("Fast Scatter Plot", plot);
            chart.setLegend(null);
            chart.setAntiAlias(false);
            ChartPanel panel = new ChartPanel(chart, true);
            panel.setPreferredSize(new java.awt.Dimension(500, 270));
            panel.setHorizontalZoom(true);
            panel.setVerticalZoom(true);
            panel.setMinimumDrawHeight(10);
            panel.setMaximumDrawHeight(2000);
            panel.setMinimumDrawWidth(20);
            panel.setMaximumDrawWidth(2000);
            setContentPane(panel);
         * Populates the data array with random values.
        private void populateData() {
            for (int i = 0; i < data[0].length; i++) {
                float x = (float) i + 100000;
                data[0] = x;
    data[1][i] = 100000 + (float) Math.random() * COUNT;
    * Starting point for the demonstration application.
    * @param args ignored.
    public static void main(String[] args) {
    FastScatterPlotDemo demo = new FastScatterPlotDemo("Fast Scatter Plot Demo");
    demo.pack();
    RefineryUtilities.centerFrameOnScreen(demo);
    demo.setVisible(true);
    Regards,
    Dave Gilbert
    JFreeChart Project Leader

  • How to plot VS time after transforming data from Dynamic to array ?

    Hi ! 
    I am currently using a DAQ Assistant to get dynamic data from 2 channels input.
    With a splitting VI, I substract one to the other and plot them ( Graphic named 1 )
    Then I use a VI which transform the Dynamic result of the soustraction into an array, in order to calculate its mean.
    After that step, when I turn my script ON, I am well capable to observe dynamically my mean evolve from an indicator
    BUT
    I can not observe it plotted VS time as I would like.
    In other words, from the dynamic data I have value VS time, I get the mean of it over time, and I would like to be able to plot it back VS time, with the previous mean points plotted.
    All I can get now is a single point moving up and down, because it is lacking time data.
    I attached to this post a simple represenation of my issue, I hope I provide enough information.
    I just would like to be able to plot like the window on the left, and not having the one on the right ...
    Thank you !

    Hi ! 
    Thank you for your quick answer.
    I see what you mean, it makes sense.
    But how will I be able to plot the mean VS time if now I have all my data splited into arrays ? 
    I am not sure I talk clearly ... In other ords how will I rebind that mean and Time into one wire to send it into graph VI ?

  • Plotting 4D data using 3d picture control

    Hi,
    I am using 3d picture control in my vi to view the data plotted at different locations.The 3d picture contains axis as I generated it using Create 3D axis vi But I am not able to get the gridlines on the axis to be shown on it with marker spacing(like on a 2d graph).How can I get the grids ?
    I am attaching the vi in which only axis is there with data points plotted on it.
    Regards
    Vijayab
    Attachments:
    Plot 4D Graph_Edited_copy.vi ‏21 KB

    Basically, to have the grids you have to 'draw' the grids yourself.... There isn't a lot of help from the 3D picture control at the moment for this task.
    However, if you are able to 'drill' into the "3D Graphs", you can have some functionalities that you can use to create the graphs. In attachment you have some VIs that you can look inside and see how you can create your own grid.
    Barp - Control and Simulation Group - LabVIEW R&D - National Instruments
    Attachments:
    Plot 4D Graph_Edited_copy2.vi ‏65 KB

  • Custom chart - spiral plot?

    I have been tasked with creating a series of chart types that
    don't appear to be among those available with Flex 3. Most
    worrisome among these is a plot of data vs 24-hour time. The graph
    should appear as a series of data points plotted inside a circle
    with 'midnight' at the top and 'noon' on the bottom. Inside of this
    would be some concentric rings and lots of x/y data.
    How would I go about getting started creating such a chart
    type?

    ILOG Elixir has a radar chart that looks like it might be
    able to be used as you'd like.
    If not, check out the plethora of other charting types they
    provide.
    At a cost of course, but versus development timecost,
    probably a hell of a lot cheaper to buy ILOG Elixir.
    http://www.ilog.com/products/ilogelixir/
    http://www.ilog.com/products/ilogelixir/features/radar-charts/

  • 4 dimensiona​l plotting

    I am wanting to know if labview does 4 dimensional plotting of points?  What I have in mind is I am recieving an array of values and I want to plott a graph in the x,y,z direction, for the first three columbs in the array and have the fourth columb determine the color or size of the dot plotted at the given value. 
    For example:
    Array:
    0 | 0 | 0 | 10
    0 | 0 | 1 | 5
    0 | 0 | 2 | 1
    0 | 1 | 0 | 0
    0 | 1 | 1 | 8
    0 | 1 | 2 | 2
    1 | 0 | 0 | 6
    Then the point blotted at (0,0,0) will be the bigest or brightest, the point plotted at (0,1,1) will be next, the point plotted at (1,0,0) will be next, etc. and the point at (0,1,0) will be the smallest or darkest. 

    So I have been working with the following code that you made.  If I already have a 2D array (4X36000) where the first three rows are my X,Y,Z and the fourth is my magnitude that I want to be represented in color, could I just bypass the DATA IN string and the string to number block and simply enter the array strate into the for loop and into the Transpose 2D Array block?  What I mean by can I do this is will it graph a 3-D figure with the first 3 rows of my array and do the color with the 4th?  I tried this and it let me run the code, however all that was graphed was 2 lines.  Both lines were teal, which may be good since I am only entering the value one for the 4th row of my array.  However, I expected a cupe to be printed not 2 lines.  Attached is my attempted VI.  Do you know how I could get this to work?
    Attachments:
    plot.vi ‏66 KB

Maybe you are looking for

  • Handling java.io.IOException ?

    Hi ! Keep getting the following error : "Unreported Exception java.io.IOException; must be caught or declared to be thrown" Using a throw as in "public void doGet(HttpServletResuest svreq, HttpServletResponse svresp) throws IOException" works well bu

  • Imported clip length

    I am using iMovie HD 6.03 to import Video 8 via a Canopus ADVC-55. There seems to be a default imported clip length of just under 20 minutes. I cannot find a way to adjust this, or a relative article in the iMovie help. Can anybody advise? Gordon

  • Missing iTunes album artwork

    I switched from a PC to a Macbook about 2 years ago, after putting quite a lot of songs on my computer.  When I had my PC, I ripped CDs using Windows Media Player first, and the album artwork would automatically appear whenever I played the songs or

  • Making one selection screen block invisible

    Hi, I want to make one selection-screen block invisible based on one check box value.I have built the screen as follows: PARAMETERS: pcheck1    TYPE char1  AS CHECKBOX. SELECTION-SCREEN  BEGIN OF BLOCK b2 WITH FRAME TITLE text-004. PARAMETERS: pproj 

  • Scratch Disk is Full when it shouldn't be ?

    Hello Anybody who can help ! To make room on the hard drive I constantly burn Photographs to disk, which usually works. I have recently removed about 100 photos, but it still keeps saying "The Scratch Disk is Full" Is it full or is it just confused ?