Cannot draw logarithmic graph in Plot Multi-XY vi

Hello All,
I'm trying to use the Plot Multi-XY vi in the picture controls to dynamically draw an X-Y grid on a picture control.  I need the grid to be logarithmically scaled, but when I check the "x log?" and "y log" booleans in the cartesian axis attributes to True, nothing at all shows up in the picture.  If I un-check those options, I get a nice linear grid.  Any help would be greatly appreciated!
Thanks,
Jason

Hi Ravens Fan,
Here's the VI (taken from an NI Example with just the Cartesian Axis Attributes added and the x and y logs turned to true.  If you switch them to false you get a nice graph, but when set to true nothing shows up at all.
Thanks,
Jason
Attachments:
XY Multi Plot Log.vi ‏15 KB

Similar Messages

  • LabVIEW crashes when you run a VI that contains a mixed signal graph with a multi-plot cursor.

    Hello, LV 8.2.1 notes indicates the following bug fix:
    43SAIR2A  Fixed an issue where LabVIEW crashes when you run a VI that contains a mixed signal graph with a multi-plot cursor.
    I am running this version, and still have this behavior.  Is there anything I may be missing, and/or certain circumstances that may still be causing this?
    thanks in advance,
    Darren

    Darren:
    I looked at the CAR ID that you mentioned and the issue has been resolved in LabVIEW 8.2.1. To verify something similar, I ran the attached VI and things worked just fine. Please feel free to send me the steps to follow to reproduce the issue you are running into in 8.2.1.
    Regards,
    Rudi N.
    Attachments:
    MixedGraphs.vi ‏15 KB

  • Integrating plot multi x-y vi's and three dimensional graph vi's

    i wish to plot a three dimensional graph of multiple data points (there is no formula or math function involved so currently simulated using dc signals). i used plot multi x-y vi for acquiring the points but it is in "2-d picture" format. i used 3-D surface graph vi for graph generation which is in a different format. can i integrate the two somehow or is there any other way out?

    To plot multiple x,y curves in 3D use the 3D Curve.vi
    The attached example demonstrates using 3D Curve.vi to plot several time varying curves.
    I hope this helps
    Kurt Friday
    www.sciware.com.au
    Attachments:
    3DCurvesDemo.vi ‏62 KB

  • Problem drawing a graph in Java2D

    I am trying to draw a graph using Java2D, onto a JPanel. I works sort of ok, but i have 2 problems;
    1. I don't know how to get it "linked" to the paint() method, so everytime someone resizez the window/window looses focus, the drawing is removed.
    2. The graphing becomes unacurate when passing more than 25-30 values, I think the problem might be the "hvorPaAkse" (whereOnAksis) or the "okY" (increaseY) value, that for some rasen appear to add too much, so that the error gradually increases for every loop in the for(), or something like that.
    I know reading the code and understanding the problem itselv is a challenge, but I if there's anybody out there who can help, I would be thankful for any help!
    CODE:
    //The draw axis method
    public void tegnAkser(JComponent comp, int antX, int antY, int okX, int okY) {
    Graphics g = comp.getGraphics();
    Graphics2D g2 = (Graphics2D) g;
    g2.setStroke(akseStrek);
    g2.draw(new Line2D.Double(origo.x, origo.y, origo.x, comp.getHeight()-((antY*okY)+(comp.getHeight()/yOffset))));
    g2.draw(new Line2D.Double(origo.x, origo.y, origo.x+(antX*okX), origo.y));
    int hvorPaAkse = origo.x;
    System.out.println(comp.getHeight()/antY);
    int gangeverdi = 1;
    if(comp.getHeight()/antY < 16) {
    gangeverdi = 5;
    for(int i=0; i<antX; i++) {
    g2.draw(new Line2D.Double(hvorPaAkse, origo.y - 2, hvorPaAkse,
    origo.y + 2));
    g2.drawString("" + i, hvorPaAkse, origo.y + 15);
    hvorPaAkse += okX;
    hvorPaAkse = origo.y;
    for(int i=0; i<antY; i++) {
    if(i%gangeverdi == 0) {
    g2.draw(new Line2D.Double(origo.x - 2, hvorPaAkse, origo.x + 2,
    hvorPaAkse));
    g2.drawString("" + i, origo.x - 15, hvorPaAkse);
    hvorPaAkse -= okY;
    //the drawGraf method
    public void tegnGraf(int[] verdier, JComponent comp) {
    Graphics g = comp.getGraphics();
    Graphics2D g2 = (Graphics2D) g;
    int xLengde = comp.getWidth();
    int yLengde = comp.getHeight();
    origo = new Punkt(xLengde - 9 * (xLengde / xOffset),
    yLengde - (yLengde / yOffset));
    int ant = verdier.length;
    int maxVerdi = 0;
    for (int i = 0; i < verdier.length; i++) {
    if (verdier[i] > maxVerdi)
    maxVerdi = verdier;
    tegnAkser(comp, ant+1, maxVerdi+1, (xLengde - (xLengde / xOffset)) / ant,
    ( (yLengde / yOffset) - yLengde) * -1 / maxVerdi);
    g2.setColor(Color.BLUE);
    g2.setStroke(grafStrek);
    ArrayList punkter = new ArrayList();
    for (int i = 0; i < verdier.length; i++) {
    g2.drawString("x", origo.x-2 + (i * (xLengde - (xLengde / xOffset)) / ant),
    origo.y +3 -
    (verdier[i] * ( (yLengde / yOffset) - yLengde) * -1 /
    maxVerdi));
    punkter.add(new Point2D.Double(origo.x +
    (i * (xLengde - (xLengde / xOffset)) / ant),
    origo.y -
    (verdier[i] *
    ( (yLengde / yOffset) - yLengde) * -1 /
    maxVerdi)
    //g2.draw(new Line2D.Double(origo.x,origo.y,origo.x+1,origo.y+1));
    for(int i=1; i<punkter.size(); i++) {
    Point2D.Double forrige = (Point2D.Double)punkter.get(i-1);
    Point2D.Double denne = (Point2D.Double)punkter.get(i);
    Line2D.Double linje = new Line2D.Double(forrige,denne);
    g2.draw(linje);
    Thanks
    CJ

    I couldn't do much with the code that you posted. It looks like you are plotting integers. Maybe you can use this.
    /* Plots plus/minus int values for ordinate for
    * evenly-distributed, positive int values on abcissa
    import java.awt.*;
    import java.awt.geom.*;
    import java.util.*;
    import java.util.List;
    import javax.swing.*;
    public class PlottingIntegers
        public static void main(String[] args)
            int[] data = {
                100, 220, 12, 65, 47, 175, 190, 18
            IntegerPlotter plotter = new IntegerPlotter();
            for(int i = 0; i < 8; i++)
                plotter.plot(data);
    JFrame f = new JFrame("Plotting Integers");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().add(plotter);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setVisible(true);
    class IntegerPlotter extends JPanel
    final int PAD = 25;
    List dataList;
    public IntegerPlotter()
    dataList = new ArrayList();
    setBackground(Color.white);
    setPreferredSize(new Dimension(400,300));
    public void paintComponent(Graphics g)
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D)g;
    int width = getWidth();
    int height = getHeight();
    int xStep = (width - 2*PAD)/(dataList.size() - 1);
    int x = PAD;
    int y;
    // scale data
    int max = ((Integer)Collections.max(dataList)).intValue();
    int min = ((Integer)Collections.min(dataList)).intValue();
    int vertSpace = height - 2*PAD;
    int yOffset = height - PAD;
    int yDataOffset = (min >= 0 ? min : max > 0 ? 0 : max);
    double scale = (double)vertSpace/(max - min);
    int yOrigin = yOffset + (int)(min > 0 ? 0 : max > 0 ? scale*min : - vertSpace);
    // draw ordinate
    g2.draw(new Line2D.Float(PAD, PAD, PAD, yOffset));
    // draw abcissa
    g2.draw(new Line2D.Float(PAD, yOrigin, width - PAD, yOrigin));
    // label ordinate limits
    g2.drawString(String.valueOf(max), 10, PAD - 10);
    g2.drawString(String.valueOf(min), 10, yOffset + PAD/2);
    g2.setStroke(new BasicStroke(4f));
    g2.setPaint(Color.red);
    for(int i = 0; i < dataList.size(); i++)
    y = yOrigin -
    (int)(scale * (((Integer)dataList.get(i)).intValue() - yDataOffset));
    g2.draw(new Line2D.Float(x, y, x, y));
    x += xStep;
    protected void plot(int input)
    dataList.add(new Integer(input));
    repaint();

  • Plot multi curves in one window

    Is there anyone who can tell me how to plot multi-curves in one window using LabVIEW? The sample chart is attached. I have LabVIEW 7.1. If you think it is impossible in LabVIEW7.1, can LabVIEW 8.0 do the job?
    Thanks for your help in advance.
    Jane
    Attachments:
    PerformanceCurve.JPG ‏41 KB

    Hi Jane,
    CoastanMaineBird is right about the difference between a "plot", a
    "Graph" and a "window".
    It seems that what you want is a either a Graph or a Chart with multiple plots.
    It's quite simple to do either of these. As said before, refer to the Context
    Help (Ctrl + H) from the block diagram terminal of the Chart or Graph to see
    how to add multiple plots. Here's a screenshot of how you would do it with a
    Chart and a Graph:
    If you want to use different Y-scales for each plot, you need to create multiple
    Y-scales and then specify which plot uses which Y-scale:
    I hope that this is explanation enough to get you started - otherwise, please
    let me know.
    Have fun!
    Message Edited by Philip C. on 11-12-2005 03:46 PM
    - Philip Courtois, Thinkbot Solutions
    Attachments:
    MultiPlot Chart and Graph.PNG ‏6 KB
    Multiple Y-scales.PNG ‏13 KB

  • Where do I get "Plot Multi-XY"?

    Hi everyone,
    The thing is that I need this "Plot Multi-XY" and it was mentioned in my help program as 'not available in base package'. Is there any other way that I can get hold of this Sub-VI??
    P.S: Thanks VI Guy!!

    The VI that you mention is part of the Picture plots palette and does not come with the LabVIEW base package and the only way to get it is to spend the money for an upgrade. However, the normal XY Graph in every version of LabVIEW has the capability of multiple plots. Is there a specific reason that you want the Picture Plot version?

  • Using appended array to draw a graph

    Hi Guys, I'm having a problem with using appended array. I used appended array to save the values from the analyser and then use those values to draw a graph. I have attached 2 VI with this post.  
                                   1st-I can able to save the results in the appended array in different rows.                               2nd-I couldn't save the results in different rows. I can able to save the results in one row only. The new results are over write on the same row.  Can anyone help me with this please? RegardsMayuren  
    Attachments:
    15.vi ‏63 KB
    new1.vi ‏13 KB

    I have attached the sub VI for the previous post
    Attachments:
    Append Text Strings.vi ‏17 KB
    Concatenate Strings.vi ‏15 KB
    Multi-Line List to Array of Strings.vi ‏44 KB

  • How to draw xy graph with multiple y axis input?

    Hi,
    I have problem in xy graph, the xy graph only can show 1 signal from the y axis input ( As you can see in the attachment )
    Is it possible to draw xy graph with 2 Y input? Or maybe there are another type of graph that possible to do this? 
    Note:  the x axis should be from an input too ( not versus time / sample ).
    All answer and advice are welcomed.
    Best regards,
    Alvin Chandra 
    Solved!
    Go to Solution.
    Attachments:
    Example.vi ‏139 KB

    Are you asking for a second Y scale on the graph?
    If so, right click on the existing scale, select "Duplicate Scale". This will create a second scale. You can then (if you wish), right click on the new scale a select "Swap Sides" to put it on the other side of the graph.
    Are you asking about adding a second plot?
    If so then you need to bundle your arrays of X and Y points into clusters and build those into an array:
    The X-axis is always from an input on the XY Graph. You just need to change the axis title. Easiest way to do this is to double click on the axis title and type the new name.
    Rob

  • Need help to draw a graph from the output I get with my program please

    Hi all,
    I please need help with this program, I need to display the amount of money over the years (which the user has to enter via the textfields supplied)
    on a graph, I'm not sure what to do further with my program, but I have created a test with a System.out.println() method just to see if I get the correct output and it looks fine.
    My question is, how do I get the input that was entered by the user (the initial deposit amount as well as the number of years) and using these to draw up the graph? (I used a button for the user to click after he/she has entered both the deposit and year values to draw the graph but I don't know how to get this to work?)
    Please help me.
    The output that I got looked liked this: (just for a test!) - basically this kind of output must be shown on the graph...
    The initial deposit made was: 200.0
    After year: 1        Amount is:  210.00
    After year: 2        Amount is:  220.50
    After year: 3        Amount is:  231.53
    After year: 4        Amount is:  243.10
    After year: 5        Amount is:  255.26
    After year: 6        Amount is:  268.02
    After year: 7        Amount is:  281.42
    After year: 8        Amount is:  295.49
    After year: 9        Amount is:  310.27
    After year: 10        Amount is:  325.78
    After year: 11        Amount is:  342.07
    After year: 12        Amount is:  359.17
    After year: 13        Amount is:  377.13
    After year: 14        Amount is:  395.99
    After year: 15        Amount is:  415.79
    After year: 16        Amount is:  436.57
    After year: 17        Amount is:  458.40And here is my code that Iv'e done so far:
    import javax.swing.*;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.RenderingHints;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.lang.Math;
    import java.text.DecimalFormat;
    public class CompoundInterestProgram extends JFrame implements ActionListener {
        JLabel amountLabel = new JLabel("Please enter the initial deposit amount:");
        JTextField amountText = new JTextField(5);
        JLabel yearsLabel = new JLabel("Please enter the numbers of years:");
        JTextField yearstext = new JTextField(5);
        JButton drawButton = new JButton("Draw Graph");
        public CompoundInterestProgram() {
            super("Compound Interest Program");
            setSize(500, 500);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            amountText.addActionListener(this);
            yearstext.addActionListener(this);
            JPanel panel = new JPanel();
            panel.setBackground(Color.white);
            panel.add(amountLabel);
            amountLabel.setToolTipText("Range of deposit must be 20 - 200!");
            panel.add(amountText);
            panel.add(yearsLabel);
            yearsLabel.setToolTipText("Range of years must be 1 - 25!");
            panel.add(yearstext);
            panel.add(drawButton);
            add(panel);
            setVisible(true);
            public static void main(String[] args) {
                 DecimalFormat dec2 = new DecimalFormat( "0.00" );
                CompoundInterestProgram cip1 = new CompoundInterestProgram();
                JFrame f = new JFrame();
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.getContentPane().add(new GraphPanel());
                f.setSize(500, 500);
                f.setLocation(200,200);
                f.setVisible(true);
                Account a = new Account(200);
                System.out.println("The initial deposit made was: " + a.getBalance() + "\n");
                for (int year = 1; year <= 17; year++) {
                      System.out.println("After year: " + year + "   \t" + "Amount is:  " + dec2.format(a.getBalance() + a.calcInterest(year)));
              @Override
              public void actionPerformed(ActionEvent arg0) {
                   // TODO Auto-generated method stub
    class Account {
        double balance = 0;
        double interest = 0.05;
        public Account() {
             balance = 0;
             interest = 0.05;
        public Account(int deposit) {
             balance = deposit;
             interest = 0.05;
        public double calcInterest(int year) {
               return  balance * Math.pow((1 + interest), year) - balance;
        public double getBalance() {
              return balance;
    class GraphPanel extends JPanel {
        public GraphPanel() {
        public void paintComponent(Graphics g) {
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            g2.setColor(Color.red);
    }Your help would be much appreciated.
    Thanks in advance.

    watertownjordan wrote:
    http://www.jgraph.com/jgraph.html
    The above is also good.Sorry but you need to look a bit more closely at URLs that you cite. What the OP wants is a chart (as in X against Y) not a graph (as in links and nodes) . 'jgraph' deals with links and nodes.
    The best free charting library that I know of is JFreeChart from www.jfree.org.

  • "Cannot draw document with negative rows to credit note"

    Hi Experts,
    A General query :
    I create an AR invoice with two items one with qty 1 and the other with qty (-ve 1)  on posting this invoice the second item / row with negative qty gets closed automatically. Now, I require to post a AR Credit note to this invoice i get the following status error message "cannot draw document with negative rows to AR credit note" when copying to a AR Credit note and it is the same the other way when copying from
    How is it possible to create a  AR credit note to the above scenario. Any sugestions
    V.  2007A SP01 PL05
    Regards,
    Rakesh N

    Hi Rakesh N,
    version 8.8 supports fully the scenario you outline & I would recommend you upgrade to benefit from the new functionalities introduced in that version. Please have a look at the [8.8 landing page|https://service.sap.com/~sapidb/011000358700000199032009].
    Using stand-alone documents & internally reconciling in the lower versions works beautifully on the accounting side yet impacts also the stock side, where corrections in stock value & item cost must be carried out manually.
    All the best,
    Kerstin

  • Cannot draw in Flash Pro CC on Surface Pro 3 with latest N-Trig drivers...Is there a current fix?

    Cant draw in flash pro cc on surface pro 3 with latest n-trig wintab drivers. Many others online say they have this issue on surface pro 3 also...Is there not some type of current fix. Someone on the adobe forums said the problem was fixed internally in flash pro and that the fix will come with next adobe flash pro update, but when is that?
    Flash updates don't exactly  come every month or even 2 months, and this issue needs some type of current fix because there are many ppl also having this issue, which basically makes Flash Pro useless, what good is an animation program if you cannot draw in it on a tablet that literally SPECIALIZES in pen/drawing usage. So anything out there ??

    bump
    its very frustrating as I'm paying monthly for CC and can't use one the programs I need for my design job! Looking at other programs.  

  • 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.

  • I DRAW A GRAPH IN 2D AND I HAVE A PROBLEME WITH THE BUBBLE HELP(ToolTipText

    dear friend,
    i wrote a java applet that draws a graph in 2D. i want to have coordinates (x,y) on an bubble help while displacing the mouse on the graph.
    if someone have an idea, thank you to rather communicate it to me as soon as possible.
    thanks.

    I don't think you can use a tooltip in this case.
    You need to add a MouseMotionListener, then follow the mousemove and build you own TollTip.
    Noah

  • Plot Multi-XY:x-axis hosed

    Using the "Plot Multi-XY" (picture output). This has to be something simple I'm overlooking. I'm setting both my Y and X-axis to 0 digits of precision. Y axis behaves as expected, but you can see the X-axis problem in the screen shot below. Setting 1 digit of precision works fine.
    LabVIEW 8.5
    Message Edited by Bill@NGC on 07-11-2008 07:21 PM
    “A child of five could understand this. Send someone to fetch a child of five.”
    ― Groucho Marx
    Attachments:
    graphhosed.png ‏5 KB

    Here's the VI I was talking about.
    Ton
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!
    Attachments:
    RemoveFalseTicks.vi ‏28 KB

  • How can I get my graph to plot vs. my data points instead of vs. time?

    how can I get my graph to plot vs. my data points instead of vs. time?

    Maybe you could exaplin in a few more words what "my data" is. Are the values equally or randomly spaced?
    If they are equally spaced, just adjust offset and multiplier, and axis label.
    If they are randomly spaced you are probably looking for an X-Y graph. Check the shipping examples.
    LabVIEW Champion . Do more with less code and in less time .

Maybe you are looking for

  • How to download a report into CSV file format?.

    Hello all, I have a requirement like this. I have one custom Report. I need to download this report output into CSV format. In the selection screen, i am giving the pathname where report output need to be saved. Please let me know how to do it.. Than

  • AT200 Connection to Windows 7

    Hi, I recently bought AT200 from Germany. It works well except that I don't know how to connect it to PC for file exchanging. I used Acer tablet before and it worked in a wink. I tried to install all drivers, the MTP USB shows that it fails. My OS is

  • Sony Mini-DVD Camcorder

    I recently bought a mac book pro and I have final cut express. I am trying to hook up my sony mini dvd camcorder to my computer so that I can capture my footage off of my camcorder to make movies. Any suggestion would be helpful. Thanks

  • Please give the meaning of this code

    Hi anyone please give the meaning of the below mentioned modify command code   READ TABLE XKOMV INTO L_XKOMV               WITH KEY               KSCHL = 'ZGBC'.   IF sy-subrc = 0.     XKOMV-KINAK = 'X'.     <b>MODIFY XKOMV TRANSPORTING KINAK WHERE K

  • Flatten a single field

    Is it possible to flatten just a single field in a document? I sometimes want to hide part of a page and put a button with a white background over the area;flattening it would finish the job.There are often other fields or hyperlinks on the same page