Line graphs in java

I am looking for a free class that will allow me to graph a line graph in java. I was going to write my own but figured there must already be some out there... There doesn't happen to be a JGraph object that sun is working is there?

Look at JFreeChart, it contains tools to draw many different charts and graphs.
DB

Similar Messages

  • How to Draw a line Graph using x,y Cordinates in Java ?

    Hi,
    what r the easiest way to draw a line Graph using Java Code either applet.
    can u give me code sample. or any package where we can pass some parameter so that accoring to the paramter as i know jfreeChart.function() like some method is there from toold jChart.
    Is it possible.
    Regards,
    Prabhat

    There's a number of sample applications in one of the packages of freechart, one of which should do the trick.
    If you're doing applets I suggest you look at genjar from the sourceforge site. What that does is bundle classes from a set of library jars into one jar, selecting only classes that are referenced. That should simplify the transfer problem.
    To draw graphs, typically, you create a DefaultXYDataset object, add data points and then use the appropriate ChartFactory.createXXX methods to build a chart object. Then you wrap that in a ChartPanel to display.

  • Help needed in plotting line graph!

    Hi i need help in plotting a line graph complete with both axes shown,plus the legend on the side shown.
    Pls help!!!!
    rgds

    Here's a simple line graph applet I did some time backimport 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);    
    }

  • Multiple Line Graph

    First off, thanks to kglad for the line graph function I
    started with, it has been a huge help. Now the step I'm trying to
    take is 2 fold.
    First, I'd like to graph more than one line segment on the
    graph. Right now I am graphing functions f1 and f2, but f2
    currently overwrites f1. I want them to coincide so f1 goes from
    x=1 to x=15, f2 goes from x=15 to x=25, f3 goes from x=25 to x=10
    at a different y (these are all curves), and finally f4 goes from
    x=10 to x=1 creating a closed shape. Also, I want the x values and
    the y values to be variable based on the temperature. I'm using
    PV=nRT and n, R, and T are all known. so I have something like
    P=nRT/V where P is y, V is X and the nRT can be calculated for two
    steps of the 4. The other two steps are adiabatic, so Q=0, I don't
    know yet how to fit the lines but i do know that y = a / (x^(5/3))
    is a formula that works, I just need to find the proper a values
    for steps 2 and 4.
    Part two of this issue is that currently the graph is drawing
    as the whole canvas, which is fine for testing until i get the
    multiple line part worked out; however I only want this to be 1/4
    of the viewing area as I have other movie clips and such to put on
    this. A conceptual drawing of what I plan on making can be found
    at:
    http://www.students.bucknell.edu/gbement/Steps.html
    I'm a novice to Actionscript and movie clips, I previously
    did everything with motion tweens and nothing was dynamic. I plan
    on creating the piston and molecule simulation in another movie
    clip, then I can vary the play speed relative to the hot and cold
    temperatures by looping the movieclip and having it play faster for
    a high T and slower for a low T.
    Any help on any of my many issues would be greatly
    appreciated and the user will be recognized for their assistance in
    my research presentation :)

    Hi Arun, thanks again for the help but upon closer inspection
    (along with only a basic knowledge of java and actionscript), I
    think your script would need editing to work for me (editing i'm
    unsure of how to do). What I'm looking for is a graph that will
    create a line based on a function. Much like y=(a*b*c)/x or
    y=(a*b*c)/(x^1.66) The a*b*c would be complicated also, but here's
    what i've thought up on paper that I have to move to script, I hope
    this is useful:
    Step 1: Calculate the a*b*c
    The original function is PV=nRT , nRT being the a*b*c ,
    however the Thot and Tcold terms are input boxes that the user
    types in before hitting the "go" button.
    So I have to do this much:
    tcold = Number(tcold_num.text);
    thot = Number(thot_num.text);
    var n:Number = 1;
    var R:Number = 0.0825;
    var a:Number;
    var b:Number;
    var c:Number;
    var d:Number;
    a = n*R*thot // Step 1 constant
    b = // Step 2 constant (formula to be finished :-/) Looks to
    be a formula using ((b) / (Math.pow(x, 1.666)))
    c = n*R*tcold // Step 3 constant
    d = // Step 4 constant (formula to be finished :-/)
    Then I need to find a way to initialize axis to line the
    graph, I can label the P and V axis using static text boxes later I
    suppose.
    The problem I have with yours that I don't understand is that
    I could add the function into the y part of the addLine() function,
    however it's noted as inity= y1 (requires a number), and the
    function definition has y1:Number.
    Now the issue i'm tackling below is just a newbie's lack of
    understanding (i hope), but the script kglad wrote (snipped below)
    will graph one line, and i can't figure out for the life of me how
    to write this up to graph more than one instance without
    overwritting the previous line. Again, Thanks for the help so far,
    it has helped me find the points where I lacked direction and solid
    ideas before.

  • Exporting from a 2D line graph with .jpeg extension

    Is there any way to export from an ordinary 2D line graph with .jpeg extension so that with using this image i will improve my result of exporting excel.
    e.g. i have found and example and added a button as you will see when you run this code.I will click this button and it will export this line graph with extension .jpeg so that i will see it as an ordinary image at my home directory.
    Thanks for any helpful comment
    Regars,
    Serhat
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    * @author led1433
    import java.awt.*;
    import java.awt.font.*;
    import java.awt.geom.*;
    import javax.swing.*;
    public class LineGraph
        public static void main(String[] args)
            int x1 = 1000,y1 = 0;
            JFrame f = new JFrame();
            JButton exportToJPegButton = new JButton("EXPORT WITH JPEG");
            exportToJPegButton.setToolTipText("Exports Graph with extension *jpeg");
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            exportToJPegButton.setSize(200,25);
            f.add(exportToJPegButton).setLocation(x1, y1);
            f.getContentPane().add(new GraphPanel());
            f.setSize(400,400);
            f.setLocation(200,200);
            f.setVisible(true);
    class GraphPanel extends JPanel
        final int
            HPAD = 60,
            VPAD = 40;
        int[] data;
        Font font;
        public GraphPanel()
            data = new int[] {
                120, 190, 211, 75, 30, 290, 182, 65, 85, 120, 100, 101
            font = new Font("lucida sans regular", Font.PLAIN, 16);
            setBackground(Color.white);
        protected void paintComponent(Graphics g)
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D)g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                                RenderingHints.VALUE_ANTIALIAS_ON);
            g2.setFont(font);
            FontRenderContext frc = g2.getFontRenderContext();
            int w = getWidth();
            int h = getHeight();
            // scales
            float xInc = (w - HPAD - VPAD) / 11f;
            float yInc = (h - 2*VPAD) / 10f;
            int[] dataVals = getDataVals();
            float yScale = dataVals[2] / 10f;
            // ordinate
            g2.draw(new Line2D.Double(HPAD, VPAD, HPAD, h - VPAD));
            // tic marks
            float x1 = HPAD, y1 = VPAD, x2 = HPAD - 3, y2;
            for(int j = 0; j < 10; j++)
                g2.draw(new Line2D.Double(x1, y1, x2, y1));
                y1 += yInc;
            // labels
            String text; LineMetrics lm;
            float xs, ys, textWidth, height;
            for(int j = 0; j <= 10; j++)
                text = String.valueOf(dataVals[1] - (int)(j * yScale));
                textWidth = (float)font.getStringBounds(text, frc).getWidth();
                lm = font.getLineMetrics(text, frc);
                height = lm.getAscent();
                xs = HPAD - textWidth - 7;
                ys = VPAD + (j * yInc) + height/2;
                g2.drawString(text, xs, ys);
            // abcissa
            g2.draw(new Line2D.Double(HPAD, h - VPAD, w - VPAD, h - VPAD));
            // tic marks
            x1 = HPAD; y1 = h - VPAD; y2 = y1 + 3;
            for(int j = 0; j < 12; j++)
                g2.draw(new Line2D.Double(x1, y1, x1, y2));
                x1 += xInc;
            // labels
            ys = h - VPAD;
            for(int j = 0; j < 12; j++)
                text = String.valueOf(j + 1);
                textWidth = (float)font.getStringBounds(text, frc).getWidth();
                lm = font.getLineMetrics(text, frc);
                height = lm.getHeight();
                xs = HPAD + j * xInc - textWidth/2;
                g2.drawString(text, xs, ys + height);
            // plot data
            x1 = HPAD;
            yScale = (float)(h - 2*VPAD) / dataVals[2];
            for(int j = 0; j < data.length; j++)
                y1 = VPAD + (h - 2*VPAD) - (data[j] - dataVals[0]) * yScale;
                if(j > 0)
                    g2.draw(new Line2D.Double(x1, y1, x2, y2));
                x2 = x1;
                y2 = y1;
                x1 += xInc;
        private int[] getDataVals()
            int max = Integer.MIN_VALUE;
            int min = Integer.MAX_VALUE;
            for(int j = 0; j < data.length; j++)
                if(data[j] < min)
                    min = data[j];
                if(data[j] > max)
                    max = data[j];
            int span = max - min;
            return new int[] { min, max, span };
    }

    GraphPanel stays the same.
    public class JpegExport {
        public static void main(String[] args) {
            final GraphPanel graphPanel = new GraphPanel();
            JButton exportToJPegButton = new JButton("EXPORT WITH JPEG");
            exportToJPegButton.setToolTipText("Exports Graph with extension *jpeg");
            exportToJPegButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    exportToJpeg(graphPanel);
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(exportToJPegButton, BorderLayout.NORTH);
            f.getContentPane().add(graphPanel, BorderLayout.CENTER);
            f.setSize(400, 400);
            f.setLocationRelativeTo(null);
            f.setVisible(true);
        private static void exportToJpeg(GraphPanel graphPanel) {
            try {
                int w = graphPanel.getWidth();
                int h = graphPanel.getHeight();
                BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
                Graphics2D g2 = image.createGraphics();
                graphPanel.paint(g2);
                g2.dispose();
                ImageIO.write(image, "jpeg", new File("export.jpg"));
            } catch (IOException e) {
                e.printStackTrace();
    }

  • Producing a line graph of int values and saving as an image

    Hi,
    I wonder if anyone could help me with this. I have 2 arrays of integer values that I would like to plot as a line graph (e.g. X[ ] and Y [ ]) and then have this line graph saved as an image (the format isn't too important but PNG would be preferred).
    Could somone point me in the right direction of an easy way to do this?
    Thanks,
    Pete

    Have a look at the following classes :
    java.awt.Graphics (drawLine method)
    java.awt.Image
    java.awt.BufferedImage
    javax.imageio.ImageIO (jdk 1.4+)

  • Creating a Line Graph in a JSP...

    ive got to create a simple line graph (ability to have a title, xaxis, yaxis labels, plus label the data on hte x and y axis). right now the yaxis date is stored in an array of doubles and the xaxis just increment by 1. im having problems finding such a thing on the internet that doesnt depend on other classes or beans besides teh ones built into the jdk. i can have no other 3rd party software, is there anything like this out there? any java functions? thanks.
    Adam.

    Hi
    Keep in touch with the following thread, which is going in parallel, which is same as yours.
    http://forums.java.sun.com/thread.jsp?forum=45&thread=286179
    Thanks
    Swaraj

  • Line Graph Drawing

    Hi i have developed a class for the information manipulation of a Line graph
    I would Like some help in actually drawing the graph so i can pass values
    manipulated here to the drawing of the graph any help is greatly appreciated thank you
    package ICUv2;
    import java.awt.Point;
    import java.util.Random;
    public class ecgSensor extends Paitent {
        private int x;
        private int y;
        private int xpos;
        private int ypos;
        private int min;
        private int max;
        private Point rate;
         public ecgSensor(int x, int y, int min, int max, int xpos, int ypos ){
        setX(x);
        setY(y);
        setMin(min);
        setMax(max);
        setRate(getXpos() , getYpos());
        public ecgSensor(int x, int y, int min, int max ){
        this(x,y,min,max,0,0);
        setX(x);
        setY(y);
        setMin(min);
        setMax(max);
        public ecgSensor(){
        this(5, 5, 50, 100);
        @Override
        public String toString(){
        return String.format("%s :%s", getX(), getY());
        public static void main (String[] args){
        ecgSensor a = new ecgSensor() ;
        System.out.print(a.toString());
        //System.out.print(a.getX());
        //System.out.print("  ");
        //System.out.print(a.getY());
        public Point getRate(){
        return rate;
        public void setRate(int x, int y){
        this.rate = new Point (x, y);
        public int getX(){
        return x;
        public int getY(){
        return y;
        public void setX(int x){
        this.x = x;
        public void setY(int y){
        this.y = y;
        public  int getMin(){
        return min ;
        public  int getMax(){
        return max;
        public  void setMin(int min){
        this.min = min;
        public  void setMax(int max){
        this.max = max;
        public int getXpos(){
        return xpos;
        public int getYpos(){
        return ypos;
        public void setXpos(int xpos){
        this.xpos = xpos;
        public void setYpos(int ypos){
        this.ypos = ypos;
        public int incYpos(){
        return this.ypos;
        public void setincYpos(int inc){
        setYpos(getYpos()-inc);
        public int decYpos(){
        return this.ypos;
        public void setdecYpos(int dec){
        setYpos(getYpos()+ dec);
        public class ecgReadings implements Runnable {
        Random ecgr = new Random();
        int Change = ecgr.nextInt(20);
        public void run(){
            this.toString();
            while (true) {
                  if (x%2==0){
                    setXpos(getXpos()+ 10);
                    setdecYpos(Change);
                    }else{
                    setXpos(getXpos()+ 10);
                    setincYpos(Change);
           try{
             Thread.sleep(1000);
             }catch(InterruptedException e){}
           }// end of while
        }// end of run method
    }// end of  ReviseBloodrate class
    }

    xiaolixx wrote:
    Hi i have developed a class for the information manipulation of a Line graph
    I would Like some help in actually drawing the graph so i can pass values
    manipulated here to the drawing of the graph ..Right. Did you have a question, or did you think your plaintiff cry for help would get someone to do it all for you?
    ..any help is greatly appreciated thank you
    package ICUv2;
    By convention, package names are alllowercase (It's funny you should rediscover your shift key, just for some package name where it is inappropriate!). Class names should be EachWordUpperCase, while attributes and methods should be firstWordLowerCaseAllTheRestUpper.
    By using the common conventions for code, you help to communicate the problem to others who are used to seeing that nomenclature.
    And as I said before.. "For better help sooner, post an SSCCE".

  • Line graph using draw2d

    Hi,
    Could anyone plz provide me with an application to draw line graph using draw2d?or maybe useful links if such a code is freely available..thnx in advance

    Here is a rough example
    http://forum.java.sun.com/thread.jsp?forum=20&thread=543227
    Bamkin

  • Line Graphs

    Hi
    I'm trying to construct a line graph on an applet from values in two arrays. I also need to make the axis scale with different value ranges that can be in the arrays.
    Now I've looked at the sun tutorials but I cant fin anything to do this seemingly simple task, I've got so much other stuff to do for my school project I can't afford to spend llots of time on this while still having to learn java.
    Does anybody have code that does close to what I want??
    I would be much abliged.
    Thanks
    Paul.

    Hopefully, no one will give you the code for this. If this is a school project you should be doing it. here's a few hints
    Look at the Java 2D package. Specifically look at the GeneralPath class. It allows you to draw a line from point to point, which sounds like just what you'll need.
    Java 2D also provides scaling functionality.
    So, my advice, is to try to do your own assignment. When you have done that post questions about parts you can't figure out. I think you'll find many people on this forum willing to help students making an honest effort, but hopefully wery few willing to do the student's work for him. After all, we may be hiring you some day.
    Cheers
    DB

  • Help me with a simple line-graph, plzzzzzzzz.

    hi!
    can anyone give me the basic java code to create a simple line graph for my java program output.
    thanks a lot in advance.
    cheers!

    Have a look at the Graphics.drawPolyline() method.
    kind regards,
    Jos

  • How to draw a directed 2D graph in java

    how to draw a directed 2D graph in java?-if anybody can suggest some tutorials about this topic or can suggest the way to draw the graph.......how can i do that.......if the nodes of the graph has X and Y co-ordinate.........and the neighbours of each node are known.......suppose
    node1 has neighboures node2,node3 and node4.....node2 has node5 and node3 as neighbours.....in this way....so directed edge from node1 to node2,node3,and node4......
    or if u can suggest other way out......plz reply....

    prometheuzz wrote:
    JosAH wrote:
    If you can draw a line between two points (x,y) and (x',y') you can draw an edge.
    If you can draw one edge you can draw all edges of a graph.Proof by induction!
    ; )Yep, I copied/pasted exactly the same answer I gave this poster in another forum; I recognized him by his 'plz'-es and the abundance of punctuation ;-)
    kind regards,
    Jos

  • Help creating a simple line graph

    Hi
    Im very new to the Java language, yet have some background knowledge of C and C++.
    i have a problem with an application i am developing for a university assignment, the program is to simply simulate a water pressured nuclear reaction. the main JFrame holds various JLabels that show the current core temperature, electricity produced etc. But i want to add a very simplistic line graph to the same window, it is to purely show a line that updates (no axis or labels). The graph is to illustrate how much electricity was produced on the current cycle of the reactor, the user can initiate each cycle by pressing a JButton.
    i have found some info on drawing, but cannot find anything that helps.
    Any info on how to do this (its only meant to be a samllish part of the main window), any code examples or sites that have a very relevant tutorial would be appreciated.
    Sorry for the length of this, and if anyone needs any more info on this then let me know.
    thanks

    Cross posted,
    http://forum.java.sun.com/thread.jsp?forum=54&thread=394494&tstart=0&trange=15

  • How to draw cumulative line graph over the stacked bar chart?(SSRS)

    Hello, 
    I need your help to draw a cumulative line graph over this bar chart. 
    I need your help to draw a cumulative line graph over this bar chart in SSRS.
    The dimension (Category Group) is "Hour" in this case. and expression is sum of two distinct values like 'Y' and 'N' in Activity column(Series Groups). The sum(Activity=Y) in green color and sum(Activity='N') in Red color.
    I require to draw a cumulative line graph in this same chart, that should give the result of cumulative Sum(Activity) for each hour?? I mean sum of (Y+N) for each hour and that should be cumulative over the hour.
    I mean sum of (Y+N) for each hour and that should be cumulative over the hour.
    SSRS Version details:
    Microsoft SQL Server Reporting Services Designers 
    Version 10.50.1600.1
    --Siva

    Hi Siva,
    It seems that you need to verify your email address to post images, etc
    Besides,  Microsoft® SQL Server™ 2008 Reporting Services: Step by Step is a good choice to you. With STEP BY STEP, you work at your own pace through hands-on, learn-by-doing exercises. A companion CD includes data sets and sample code. You can download
    it from this link http://my.safaribooksonline.com/9780735626041 Click the Extras, you can get the samples and database from Supplemental Content.
    And there are vast of valuable articles and SQL Server Reporting Services Books Online in MSDN ,you can click these link to begin your learning journey, SQL Server Reporting Services 2008 Books Online:
    http://msdn.microsoft.com/en-us/library/ms159106(v=SQL.100).aspx 
    Besides these, there are still many valuable videos in Microsoft Webcast, click this link
    https://msevents.microsoft.com/cui/SearchDisplay.aspx?culture=en-US#culture=en-US;eventType=0;sortKey=;sortOrder=;pageEvent=false;hdnInitialCount=;searchcontrol=yes;kwdAny=Reporting%20service to register with a windows live ID, then download the ones you
    want.
    Hope this helps.
    Regards,
    Charlie Liao
    TechNet Community Support

  • Help needed in plotting Line Graph!!!!!!!!!Pls help!!

    Hi, i need help in plotting a simple line graph showing the x&y axis and has to plot 3 different lines in the same graph.I have written a program and i need to implement this graph in it.Is there any tutorial for plotting line graphs,i mean steps included.
    Please help!

    You describe your need, but not where it originates from.
    Is it a programming assignment? If so, I hope this is not your chosen major, as you will fail because you are a non-resourceful plagarist.
    Do you need to simply graph some data? Use an existing package. There are free ones somewhere.
    What do you mean "i have written a program and i need to implement this graph in it"? If you wrote the program, wouldn't you be done?
    Enjoy programming

Maybe you are looking for