Easiest Way to draw a graph

Hi guys,
what is the easiest way to draw a graph in java?
Suppose I have 2 arrays. One array contains the x-coordinates. Another array contains the respective y-coordinates.
I do not need the graph to be smooth. Is there a API in java that allows the programmer to draw a graph simply? If not, please kindly advise what would be the easiest way to do it. I do not need the codes but just some suggestions and advice will be fine.
Many thanks for your time and attention!!
Regards

setClipArea and drawPolyline <--- good ideas, however, say 'thank you' and soon please. I did this app for someone at these forums a few months back - a line graph applet with labels etc - try it;-import java.awt.*;
public class LineGraff extends java.applet.Applet{
   double []toGraff = {6.0, -14.0, -164.0, -210.0, 108.0, 770.0,
                            1354.0, 896.0, -572.0, -1348.0, -780.0, -108.0};
   double []numsFromFile = {6.0, -14.0, -164.0, -210.0, 108.0, 770.0,
                            1354.0, 896.0, -572.0, -1348.0, -780.0, -108.0};
   int max, min, size, Hscale;
   double Vscale;
   public void init(){
      size = numsFromFile.length-1;
      java.util.Arrays.sort(numsFromFile);
      max = (int) numsFromFile[size];
      min = (int) numsFromFile[0];
      Vscale = max-min;
      Vscale = 200/Vscale;
     Hscale = Math.round(300/size);
   public void paint(Graphics g) {
      g.setFont(new Font("Arial",0,14));
      g.drawString("Example app: drawing a graph from a double array",25,18);
      g.setFont(new Font("Arial",0,10));
      g.setColor(Color.blue);
      g.fillRect(10,20,365,230);
      g.setColor(Color.cyan);
      g.drawLine(25,25,25,225);
      g.drawLine(25,140,330,140);
      g.setColor(Color.white);
      int intA = 30, intB = 0, intC = 0;
      int intD = (int) (Math.round(140 - (Vscale * toGraff[0])));
         for(int i=1; i <= size; i++) {
           intC = intA + Hscale;
           intB = intD;
           intD = (int) (Math.round(140 - (Vscale * toGraff[ i ])));
           g.drawLine(intA, intB, intC, intD);
              if(toGraff[ i ] > 0)
                 g.drawString(Double.toString(toGraff[ i-1 ]), intA+6, intB-3);
              else
                 g.drawString(Double.toString(toGraff[ i-1 ]), intA+6, intB+8);
           intA += Hscale;
      g.drawString(Double.toString(toGraff[size]), intA+6, intD-3);    
}

Similar Messages

  • What is the easiest way to draw rectangles in PS ?

    What is the best and easiest way to draw the outline of a geometric shape in PS ?
    I want to be able to control the line thickness.
    I do not want to use the superimposition of on slightly smaller rectangle over another to make the outline....
    .....too ify and too time consuming.
    The line tool from the tool palette is also ungratifying and not the answer.
    There must be a better way.
    Thanx

    Not getting it Chris.
    Could you paste in an image explaining what it is you do after setting the fill capacity
    to zero because when I did that the rectangle and everything else disappeared.
    This is what was left of my rectangle when the fill opacity was 32%
    david

  • 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

  • Is there an easier way to draw a shape in 3d to match X,Y, Z of photo?

    I usually start a project in 2d and import photos, draw shapes and text in this 2d environment. I find it easier this way because they all start out on the same plane, and when manipulating in 3d later, this initial plane acts as a reference plane that I can shift X,Y,Z and rotation paramaters from. I then add a new camera and turn everything into 3d. However, as I work further in the timeline, I sometimes want to add a rectangle that overlaps exactly on top of a photo lying in 3d space as to cover it. When I start the shape command in the active camera view and draw the rectangle to match the outline of the photo, it seems like the photo and rectangle are on the same plane in this view. However, when I check this by going to the perspective view and checking from other angles I see that the rectangle was placed on an arbitrary plane and the rectangle is not overlapping the photo.
    To correct this, I open the inspector of the photo and write down it's X,Y,Z positions and also it's X,Y,Z rotation parameters. Then I go to the rectangle that I have already drawn and in the wrong plane, open it's inspector properties, and replace with the X,Y,Z and rotation parameters of the photos. Then fine tune the orthogonal positions and scaling within the plane with the 3d tranform tool. This seems like a lot of work, especially when I have to do it a 100 times. Looking for an easier way to draw a shape on the same plane of a photo in 3d space.
    Thanks

    Howdy,
    This is a really good question about one of the bigger challenges of building a 3D project. When you add objects to the Canvas (including drawing), they get added in the camera's viewspace, facing the camera and sharing the same up-vector (i.e. positive Y is up). This is all well and good, but what about doing what you ask, where you want to add an object in the localspace of another object? Let's look at your example: adding a shape that is coplanar to a photo, with the camera not necessarily aligned with the photo.
    As Mark suggested, you can draw the shape in the camera's viewspace and then drag-and-drop the Position and Rotation channels from the photo onto the shape. This will replace the shape's Position and Rotation values with that of the photo, making them coplanar and located in the same place. The shortcoming of this method is that you draw the shape at a size that seems correct in the Canvas, but once it's moved to the same place as the photo, it will often turn out to be too small or large. Then you have to make further tweaks.
    Another solution is to use the Isolate command. Isolate temporarily aligns the current view to the selected object and solos that object. So you could isolate the photo and then draw the shape in the Canvas and it will be coplanar with the photo. The only caveat is that the moment you finish drawing the shape, it will disappear. This is because the photo is still isolated (and soloed). As soon as you de-isolate the photo, everything will reappear.
    The easiest way to use Isolate for new photos—not ones already in the project—is to place the photo in a 3D group, position the group where you want the photo and shape to be, then isolate the group and add anything you want to it (shapes, image, text, etc).

  • What is the easiest way to wrap photos with text in ps CS4?

    What is the easiest way to wrap photos with text in ps CS4?

    InDesign handles text much better that either Illustrator or Photoshop.
    In InDesign there is more than one way to put a frame around a paragraph:
    Select the text frame, go to Object menu - Text Frame Options and set the Inset Spacing to keep the text away from the frame edge.
    Then select the text frame with the selection tool (black arrow) check the Fill/Stroke icon at the bottom or the tool box and make sure the Stroke is selected, and choose a Stroke width from the tool bar at the top of the screen.
    Or you can do it a quick and dirty way by just drawing another frame and place it on top of the text frame. Give this frame a Stroke and make sure the Fill is set to None.
    I selected both frames in this example simply to show that they are two separate frames. The first method (above) only produces one frame.
    Your original question was regarding text wrap, the third example shows text wrapping around the photo.
    Place or type your text. Place your image and go to the Window menu - Text Wrap. You can set the Offset margins individually to keep the text away from the edge of the image.
    For things like this InDesign is definitely the best way to go.

  • I am having trouble tracing a JPEG in illustrator. What is the easiest way to trace a JPEG? I am trying to match a font.

    I have a raster based JPEG file. I have almost matched the font perfectly all except the "a". How do I draw the font easiest way possible. Is there a simple way to make it in Illustrator or In Design? I really need some help.

    Larry,
    I am not the best drawer especially with the mouse. I have been trying to
    use the live trace option but I keep getting a solid white square. Do you
    have any advice on getting the live trace to work. I have found a font that
    is almost spot on on all letters except "a" letter. I have tried messing
    with anchor points and have not got anywhere either.
    Thanks,
    Phillip
    On Mon, Jul 21, 2014 at 7:56 PM, Larry G. Schneider <

  • Web - What is easiest way to implement User Security and User Profiles

    Hi, I am new to these forums and kind of new to Java. Sorry if this is in the wrong forum!
    Bit of background to my experience with java
    I have been playing about with java for a number of years and have created a few basic programs such as a screen shot tool that allows you to capture to default locations and look at previews first etc. I am now venturing into web related stuff. I work in IT doing systems testing and have done bits of basic development on various things.
    What I've done so far
    I am using Netbeans IDE 6.7 and MySQL 5.0
    I am trying to learn more complex java and have decided to try build a basic web / database system that basically implements adding / amending / deleting data from a MySQL database through web pages. I am now trying to implement basic user access and profiles. I have so far got the following:
    - MySQL table with user info - username / password
    - JSP page with usual login stuff
    - Servlet that validates the username and password - if correct forwards to main menu page.
    Its as simple as that - there is nothing stopping you just typing in the URL of the main menu page and going from there.
    What I want
    I am wanting to eventually get the following:
    - User authentication so that you have to logon before you can access anything else
    - User profiles that determine what each user can or can't do, restricting the pages / services / options available (i.e. normal user can't delete etc)
    - Would it need some sort of session manager to allow multiple users etc?
    I appreciate this is a fairly open question but what is the easiest way to start implementing this? Not after specific code as I would prefer to try figger things out myself, but a point in the right direction would be great. It doesn't have to be extremely secure as this is just for me at the minute.
    I have spent all day looking at things like session data / url rewriting / security settings in web.xml / bespoke servlets and am now in java overload!

    Hi everyone,
    I've now actually gone back to the tutorial that I linked to above and implemented that using form login and j_security_check.
    Agree with Saish, and although I don't know enough about the other options to give a good reason, using realms and j_security_check just seems to be a bit cluncky and messy. I would also prefer something a bit more generic, that doesn't rely on setting users in glassfish, hence why I started with my own user table.
    Anyway, I will leave it as is for now and maybe come back and try one of the other options.
    The only problem I can see now is that to add users i will need to go through all the steps of adding users in glassfish and web.xml... Is there a way to do this through a servlet or something so I can have a jsp page to add users that also creats all the other bits for it to work?
    Thanks everyone for your help

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

  • I am using Iphoto 11 ver 9.4.3 on mac using oxs 10.8.5 i want to export calendar projects to an external hard drive. what is the easiest way to do this? i have tried export and import but it didn't seem to work.

    I am using Iphoto 11 ver 9.4.3 on mac using oxs 10.8.5 i want to export calendar projects to an external hard drive. my goal is to store them in an external hard drive so it doesn't use up memory on the mac hard drive. is it possible to copy the specific projects without copying the entire library? what is the easiest way to do this? i have tried export and import but it didn't seem to work.

    What do you not understand?
    You can duplicate the iPhoto library (command - D ) and delete everything except the project and its photos from the copy and move that
    Or
    However the calendar takes very little space - it is simpy database entries - it is the photos in the calendar that take space - and for most people you would wnat to keep those photos in your library
    you can use a photo in 50 calendars and it still is only one photo in your library - as I explained calenders do not exist as such - they are simply database entries telling iPhotop how to display the calendar - they take almost no space at all
    LN

  • What is the easiest way to check for internet connection in C#?

    Hi!
    I searched a lot but I didn't get my answer. I'm looking for the easiest way to check for internet connection. Can you help me?
    Thanks a lot.

    Hi Pouya Ebrahimzadeh,
    I suggest you could connect a site to check if it can be opened.
    Public Shared Function CheckForInternetConnection() As Boolean
    Try
    Using client = New WebClient()
    Using stream = client.OpenRead("https://msdn.microsoft.com/")
    Return True
    End Using
    End Using
    Catch
    Return False
    End Try
    End Function
    If you have any other concern regarding this issue, please feel free to let me know.
    Best regards,
    Youjun Tang
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • What is the easiest way to create and manage very big forms?

    I need to create a form that will contain few hundred questions. Could you please give me some advise on what is the easiest way to do that? I mean for example is it easier to create everything in Word (since it is easier to manage) and than create a form based on that?
    My concern is that when I will have a very big form, containing different kinds of questions and with many scripts, managing it during work will be slow and difficult, for example adding a question in the middle of the form which would require moving half of the questions down which could smash the layout etc.
    What is the best practise for that?
    Thanks in advance

    Try using Table and Rows for this kind of forms. These forms will have the same look throught with a question and and answer section..
    In the future if you want to add a new section, you can simply add rows in between..
    Thanks
    Srini

  • What is the easiest way to open an application from Labview?

    I need to open an application from labview and depending on a user's selection, load one out of a group of files for the application that is opened. I need to know what is the best or easiest way to open an application and load a file that is used by the application based on a selection.

    Here is the response that I got from Cognex when I asked them about how to do this. Do you understand what they are talking about?
    In order to do something like this you will probably want to look into the Display Control/SDK for In-Sight. The Display Control gets installed along with In-Sight Explorer and includes a control that can be used in an environment like Labview to communicate with In-Sight sensors while the SDK is an enhanced version of the Display Control that gives you more control and functionality. I am not very familiar with the Labview environment so I will give some code snippets in VB.Net and hopefully you can adjust them as necessary. Specifically I see 3 possible avenues to do this:
     1) Using the Display Control you have access to many of the dialog boxes that are used in In-Sight Explorer including the Load Job dialog box. You can spawn this dialog box through a line of code similar to cvsInSightDisplay1.Edit.OpenJob.Execute(). I am not certain if the Labview environment will be able to spawn and display this dialog though. 2) With the addition of the SDK (additional purchase) you can directly access sensor properties including the job. There is a method called LoadJobFile to load jobs from on the sensor and LoadJobFileLocally to load jobs from the host machine. A typical line of code might be cvsInSightDisplay1.InSight.File.LoadJobFile("myjob1.job").3) If Labview cannot handle the dialogs and the SDK is not an option for you then you may still be able to do this using Native Mode commands. Native Mode commands are sent through a socket on the telnet port (typically port 23). Keep in mind that you will need to handle the username/password prompt and response when you first open the socket before issuing any Native Mode commands. The command to load a job file from the sensor would be the Load File command which would be a string similar to "LF myjob1.job". The Native Mode commands are documented in the In-Sight Explorer help file. 

  • I want to use 1 itunes account but with 3 different iphones 2 for the kids and one for me, what is the easiest way to do that?

    I want to use 1 itunes account but sync 3 different iphones, 2 for the kids and 1 for me.  So I would like to have different programs, songs, apps etc for each phone.  What is the easiest way to do that

    Agreed heather. Also, if you have three users on the same account how do you keep phone calls and messages from going to all three phones?

  • I have a mid year 2007 24 inch iMac and will be purchasing a new 27 inch Retina iMac, what is the easiest way to transfer the data and files from my old machine to the new one?

    I have a mid year 2007 24 inch iMac and will be purchasing a new 27 inch Retina iMac, what is the easiest way to transfer the data and files from my old machine to the new one?

    Following up on this thread,
    I have a new iMac on the way and my current is from 2008, never had a problem but I am sure there are internal issues that I would prefer not to transfer.
    I have no issues other then the slowness in certain programs and that is the main reason to buy a new one.
    Programs like numbers and pages seem to take a longer time to open after I update to Yosemite.
    I only use 272GB of 500 GB, my memory is 4GB and I am upgrading to 8Gb and bought the 4.0 processor.
    Question:
    Is there a way to manually transfer items or would that be a waste of time in that if there are issues they could be anywhere and would transfer anyway?

  • What is the easiest way to burn imovies onto DVD's.   I want to burn more than one movie onto DVD as I create.    Can I continue to burn onto the same DVD as the movies are created?

    What is the easiest way to burn my imovies onto DVD's?    I want to burn movies as I create them and then continue to add more movies to the same DVD as the years go by -- until the DVD is full!    Is this possible?

    You might also want to post this in the iMovie forum https://discussions.apple.com/community/ilife/imovie

Maybe you are looking for

  • Need help to Install MI

    Hi Experts, I am installing MI 7.0 on oracle 10g and Win-2003,i got stucked in the Create database Statistics phase. so below is the log i pasted. INFO 2007-08-13 16:22:25 Creating file C:\Program Files\sapinst_instdir\NW04S\SYSTEM\ORA\CENTRAL\AS\brc

  • Error while creating Employee in 11i

    Hi All, I am using Oracle applications 11i in my PC for trying purpose in Windows 2003 environment. I have HRMS in my APPS. While creating Employee in US HR manager > I am getting the following error message. App-Per-52803 Business Group Does Not Mat

  • What sequence of installations of VM products and Oracle Templates ?

    My target is to use EGRCM 8.6.3.1 & EGRCC 8.6.3 with EBS 12.1.1 EGRCI 3.0.2 on linux 5u4 on my laptop without loosing my win 7 environment. EGRCM cannot be on same server as EGRCC Kindly correct the sequence I plan to follow. 1. EBS 12.1.1 & GRCM -->

  • Error with select fnd_web_sec.URLEncrypt('hello', 'world') from dual;

    Hi Team WE have a EBS 11.5.10.2 with DB 11.1.0,7 on HPUX 11.23. And we have a error; APP: FRM-40735: ON_ERROR trigger raised unhandled exception ORA-01001 SQL> select fnd_web_sec.URLEncrypt('hello', 'world') from dual; select fnd_web_sec.URLEncrypt('

  • Can't get page to center in browser....

    Here's the link. Can someone help me fix this to center in the browser. Not sure what I'm doing wrong. http://student.ccbcmd.edu/~rsmit459/favoritespage/index.html