Graph from array of numbers


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 3 of 3

Thread: Graph from array of numbers

  1. #1
    Join Date
    Feb 2003
    Posts
    6

    Question Graph from array of numbers

    Does any one know how to create a bar and line graph separately from any array of numbers?

    For example int test[] ={0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,300};

    To be simple I was trying to draw a bar graph by using
    g.drawRect(0, 10, 2, 0);
    g.drawRect(20, 20, 2, 20);
    g.drawRect(40, 30, 2, 40);

    This draws the bars out of rectangle, but they are not leveled.

    I tried making each of the Ys the same:

    g.drawRect(0, 10, 2, 0);
    g.drawRect(20, 10, 2, 20);
    g.drawRect(40, 10, 2, 40);

    This resulted in the bars (rectangles) being on the same line but appearing to be upside down.

    As far as quadrants in geometry, it looks as though I'm drawing to the wrong one.

  2. #2
    Join Date
    Mar 2003
    Posts
    86

    drawLine

    Assuming your x coordinate is 1..n
    You can do:

    while(i < test.lengh)
    {
    g.drawLine(i,test[i],i+1,test[i+1]);
    }

    That will draw the whole array.

    Sharbov.

  3. #3
    Join Date
    Feb 2003
    Posts
    6
    Thanks..

    Any idea about the bar graph?

    The following is what I have, and it puts the bars upside down. How can I get the bars right side up?


    import java.awt.*;
    import java.applet.*;
    import java.awt.event.*;
    import java.awt.Graphics;

    public class testergraph2 extends Applet
    {

    double f(double x) {
    return ( ( Math.sin(x/5) + 2) * getSize().height / 4) ;
    }
    //int test[] = {0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,300};
    int test[] = {0,100,20,30,400,50,60,70,80,90,100,110,120,130,140,150,160,300};
    int startingPoint = 0;
    int coordX, coordY, coordX2, coordY2;
    //int i = 1;
    int x = 0;
    int constant = 10;
    int width = 2;

    int i = 1;
    int j = 0;

    int hold = 0;
    int sizeofarray = test.length - 1;
    //Color color;


    public void init()
    {
    resize(300 , 300);
    }


    public void paint(Graphics g)
    {

    int i = 0;
    System.out.println(sizeofarray);
    for(int pass=0; pass < sizeofarray; pass++)
    {
    for(int t=0; t < sizeofarray; t++)
    {
    if(test[t] > test[t+1])
    {
    hold=test[t];
    test[t] = test[t+1];
    test[t+1] = hold;
    }
    }
    }


    g.fillRect(x, (int)f(constant), width,i);
    while(i != test.length)
    {

    g.fillRect(test[i],(int)f(constant),width,i);

    i++;
    }


    }



    static boolean inApplet = true;
    public static void main(String args[])
    {
    inApplet = false;
    // Create the frame this applet will run in
    Frame appFrame = new Frame("Bar Graph");

    // Create an instance of the applet
    testergraph2 myApp = new testergraph2();

    // Add the current application to the frame
    appFrame.add("Center", myApp);

    // The frame needs a layout manager
    myApp.setLayout(new FlowLayout());

    // Add the applet to the frame
    appFrame.add(myApp);

    // Have to give the frame a size before it is visible
    appFrame.resize(400, 300);

    // Make the frame appear on the screen
    appFrame.show();

    }

    }

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center