Java/Chart/Line Chart

Материал из Java эксперт
Перейти к: навигация, поиск

Chart2D: Line Chart

Chart2D: Line Chart and Bar Chart Overlay

Chart2D: Line Chart With Filled Stack

Chart2D: Line Chart With Large Data Set

Chart2D: Line Chart With Regions

Chart2D: Line Chart With Scatter and Dot

Chart2D: Line Chart With Scatter and Dot on the Line

Chart: Line Chart

Chart: Manual bar

Chart: Neg Line

Chart: Simple Line Chart

JChart2d: Static Chart

JCharts: Line Chart

JCharts: Line Chart 0

JCharts: Line Chart 1

JCharts: Line Chart 2

JCharts: Line Chart 3

JCharts: Line Chart 4

JCharts: Line Chart 5

JCharts: Line Chart 6

JCharts: Line Chart 7

JCharts: Line Chart 8

JCharts: Line Chart 9

JFreeChart: Line Chart Demo 1

   <source lang="java">

/* ===========================================================

* JFreeChart : a free chart library for the Java(tm) platform
* ===========================================================
*
* (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.
*
* Project Info:  http://www.jfree.org/jfreechart/index.html
*
* 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.
*
* [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
* in the United States and other countries.]
*
* -------------------
* LineChartDemo1.java
* -------------------
* (C) Copyright 2002-2004, by Object Refinery Limited and Contributors.
*
* Original Author:  David Gilbert (for Object Refinery Limited);
* Contributor(s):   -;
*
* $Id: LineChartDemo1.java,v 1.27 2004/05/27 09:10:42 mungady Exp $
*
* Changes
* -------
* 08-Apr-2002 : Version 1 (DG);
* 30-May-2002 : Modified to display values on the chart (DG);
* 25-Jun-2002 : Removed redundant import (DG);
* 11-Oct-2002 : Fixed errors reported by Checkstyle (DG);
*
*/

package org.jfree.chart.demo; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; /**

* A simple demonstration application showing how to create a line chart using data from a
* {@link CategoryDataset}.
*/

public class LineChartDemo1 extends ApplicationFrame {

   /**
    * Creates a new demo.
    *
    * @param title  the frame title.
    */
   public LineChartDemo1(final String title) {
       super(title);
       final CategoryDataset dataset = createDataset();
       final JFreeChart chart = createChart(dataset);
       final ChartPanel chartPanel = new ChartPanel(chart);
       chartPanel.setPreferredSize(new Dimension(500, 270));
       setContentPane(chartPanel);
   }
   /**
    * Creates a sample dataset.
    * 
    * @return The dataset.
    */
   private CategoryDataset createDataset() {
       
       // row keys...
       final String series1 = "First";
       final String series2 = "Second";
       final String series3 = "Third";
       // column keys...
       final String type1 = "Type 1";
       final String type2 = "Type 2";
       final String type3 = "Type 3";
       final String type4 = "Type 4";
       final String type5 = "Type 5";
       final String type6 = "Type 6";
       final String type7 = "Type 7";
       final String type8 = "Type 8";
       // create the dataset...
       final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
       dataset.addValue(1.0, series1, type1);
       dataset.addValue(4.0, series1, type2);
       dataset.addValue(3.0, series1, type3);
       dataset.addValue(5.0, series1, type4);
       dataset.addValue(5.0, series1, type5);
       dataset.addValue(7.0, series1, type6);
       dataset.addValue(7.0, series1, type7);
       dataset.addValue(8.0, series1, type8);
       dataset.addValue(5.0, series2, type1);
       dataset.addValue(7.0, series2, type2);
       dataset.addValue(6.0, series2, type3);
       dataset.addValue(8.0, series2, type4);
       dataset.addValue(4.0, series2, type5);
       dataset.addValue(4.0, series2, type6);
       dataset.addValue(2.0, series2, type7);
       dataset.addValue(1.0, series2, type8);
       dataset.addValue(4.0, series3, type1);
       dataset.addValue(3.0, series3, type2);
       dataset.addValue(2.0, series3, type3);
       dataset.addValue(3.0, series3, type4);
       dataset.addValue(6.0, series3, type5);
       dataset.addValue(3.0, series3, type6);
       dataset.addValue(4.0, series3, type7);
       dataset.addValue(3.0, series3, type8);
       return dataset;
               
   }
   
   /**
    * Creates a sample chart.
    * 
    * @param dataset  a dataset.
    * 
    * @return The chart.
    */
   private JFreeChart createChart(final CategoryDataset dataset) {
       
       // create the chart...
       final JFreeChart chart = ChartFactory.createLineChart(
           "Line Chart Demo 1",       // chart title
           "Type",                    // domain axis label
           "Value",                   // range axis label
           dataset,                   // data
           PlotOrientation.VERTICAL,  // orientation
           true,                      // include legend
           true,                      // tooltips
           false                      // urls
       );
       // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...

// final StandardLegend legend = (StandardLegend) chart.getLegend();

 //      legend.setDisplaySeriesShapes(true);
   //    legend.setShapeScaleX(1.5);
     //  legend.setShapeScaleY(1.5);
       //legend.setDisplaySeriesLines(true);
       chart.setBackgroundPaint(Color.white);
       final CategoryPlot plot = (CategoryPlot) chart.getPlot();
       plot.setBackgroundPaint(Color.lightGray);
       plot.setRangeGridlinePaint(Color.white);
       // customise the range axis...
       final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
       rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
       rangeAxis.setAutoRangeIncludesZero(true);
       // ****************************************************************************
       // * JFREECHART DEVELOPER GUIDE                                               *
       // * The JFreeChart Developer Guide, written by David Gilbert, is available   *
       // * to purchase from Object Refinery Limited:                                *
       // *                                                                          *
       // * http://www.object-refinery.ru/jfreechart/guide.html                     *
       // *                                                                          *
       // * Sales are used to provide funding for the JFreeChart project - please    * 
       // * support us so that we can continue developing free software.             *
       // ****************************************************************************
       
       // customise the renderer...
       final LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();

// renderer.setDrawShapes(true);

       renderer.setSeriesStroke(
           0, new BasicStroke(
               2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
               1.0f, new float[] {10.0f, 6.0f}, 0.0f
           )
       );
       renderer.setSeriesStroke(
           1, new BasicStroke(
               2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
               1.0f, new float[] {6.0f, 6.0f}, 0.0f
           )
       );
       renderer.setSeriesStroke(
           2, new BasicStroke(
               2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
               1.0f, new float[] {2.0f, 6.0f}, 0.0f
           )
       );
       // OPTIONAL CUSTOMISATION COMPLETED.
       
       return chart;
   }
   
   /**
    * Starting point for the demonstration application.
    *
    * @param args  ignored.
    */
   public static void main(final String[] args) {
       final LineChartDemo1 demo = new LineChartDemo1("Line Chart Demo");
       demo.pack();
       RefineryUtilities.centerFrameOnScreen(demo);
       demo.setVisible(true);
   }

}


      </source>
   
  
 
  



JFreeChart: Line Chart Demo 5 showing the use of a custom drawing supplier

   <source lang="java">

/* ===========================================================

* JFreeChart : a free chart library for the Java(tm) platform
* ===========================================================
*
* (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.
*
* Project Info:  http://www.jfree.org/jfreechart/index.html
*
* 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.
*
* [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
* in the United States and other countries.]
*
* -------------------
* LineChartDemo5.java
* -------------------
* (C) Copyright 2003, 2004, by Object Refinery Limited and Contributors.
*
* Original Author:  David Gilbert (for Object Refinery Limited);
* Contributor(s):   -;
*
* $Id: LineChartDemo5.java,v 1.20 2004/05/10 16:45:23 mungady Exp $
*
* Changes
* -------
* 23-Apr-2003 : Version 1 (DG);
*
*/

package org.jfree.chart.demo; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Polygon; import java.awt.Shape; import java.awt.geom.Rectangle2D; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.DefaultDrawingSupplier; import org.jfree.chart.plot.DrawingSupplier; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; /**

* A line chart demo showing the use of a custom drawing supplier.
*
*/

public class LineChartDemo5 extends ApplicationFrame {

   /**
    * Creates a new demo.
    *
    * @param title  the frame title.
    */
   public LineChartDemo5(final String title) {
       super(title);
       final CategoryDataset dataset = createDataset();
       final JFreeChart chart = createChart(dataset);
       final ChartPanel chartPanel = new ChartPanel(chart);
       chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
       setContentPane(chartPanel);
   }
   
   /**
    * Creates a sample dataset.
    * 
    * @return a sample dataset.
    */
   private CategoryDataset createDataset() {
       
       // row keys...
       final String series1 = "First";
       final String series2 = "Second";
       final String series3 = "Third";
       // column keys...
       final String type1 = "Type 1";
       final String type2 = "Type 2";
       final String type3 = "Type 3";
       final String type4 = "Type 4";
       final String type5 = "Type 5";
       final String type6 = "Type 6";
       final String type7 = "Type 7";
       final String type8 = "Type 8";
       // create the dataset...
       final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
       dataset.addValue(1.0, series1, type1);
       dataset.addValue(4.0, series1, type2);
       dataset.addValue(3.0, series1, type3);
       dataset.addValue(5.0, series1, type4);
       dataset.addValue(5.0, series1, type5);
       dataset.addValue(7.0, series1, type6);
       dataset.addValue(7.0, series1, type7);
       dataset.addValue(8.0, series1, type8);
       dataset.addValue(5.0, series2, type1);
       dataset.addValue(7.0, series2, type2);
       dataset.addValue(6.0, series2, type3);
       dataset.addValue(8.0, series2, type4);
       dataset.addValue(4.0, series2, type5);
       dataset.addValue(4.0, series2, type6);
       dataset.addValue(2.0, series2, type7);
       dataset.addValue(1.0, series2, type8);
       dataset.addValue(4.0, series3, type1);
       dataset.addValue(3.0, series3, type2);
       dataset.addValue(2.0, series3, type3);
       dataset.addValue(3.0, series3, type4);
       dataset.addValue(6.0, series3, type5);
       dataset.addValue(3.0, series3, type6);
       dataset.addValue(4.0, series3, type7);
       dataset.addValue(3.0, series3, type8);
          
       return dataset;
       
   }
   /**
    * Creates a sample chart.
    * 
    * @param dataset  the dataset.
    * 
    * @return a chart.
    */    
   private JFreeChart createChart(final CategoryDataset dataset) {
       final JFreeChart chart = ChartFactory.createLineChart(
           "Line Chart Demo 5",      // chart title
           "Type",                   // domain axis label
           "Value",                  // range axis label
           dataset,                  // data
           PlotOrientation.VERTICAL, // orientation
           true,                     // include legend
           true,                     // tooltips
           false                     // urls
       );

// final StandardLegend legend = (StandardLegend) chart.getLegend();

 //      legend.setDisplaySeriesShapes(true);
       final Shape[] shapes = new Shape[3];
       int[] xpoints;
       int[] ypoints;
       // right-pointing triangle
       xpoints = new int[] {-3, 3, -3};
       ypoints = new int[] {-3, 0, 3};
       shapes[0] = new Polygon(xpoints, ypoints, 3);
       // vertical rectangle
       shapes[1] = new Rectangle2D.Double(-2, -3, 3, 6);
       // left-pointing triangle
       xpoints = new int[] {-3, 3, 3};
       ypoints = new int[] {0, -3, 3};
       shapes[2] = new Polygon(xpoints, ypoints, 3);
       final DrawingSupplier supplier = new DefaultDrawingSupplier(
           DefaultDrawingSupplier.DEFAULT_PAINT_SEQUENCE,
           DefaultDrawingSupplier.DEFAULT_OUTLINE_PAINT_SEQUENCE,
           DefaultDrawingSupplier.DEFAULT_STROKE_SEQUENCE,
           DefaultDrawingSupplier.DEFAULT_OUTLINE_STROKE_SEQUENCE,
           shapes
       );
       final CategoryPlot plot = chart.getCategoryPlot();
       plot.setDrawingSupplier(supplier);
       chart.setBackgroundPaint(Color.yellow);
       // set the stroke for each series...
       plot.getRenderer().setSeriesStroke(
           0, 
           new BasicStroke(
               2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 
               1.0f, new float[] {10.0f, 6.0f}, 0.0f
           )
       );
       plot.getRenderer().setSeriesStroke(
           1, 
           new BasicStroke(
               2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
               1.0f, new float[] {6.0f, 6.0f}, 0.0f
           )
       );
       plot.getRenderer().setSeriesStroke(
           2, 
           new BasicStroke(
               2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
               1.0f, new float[] {2.0f, 6.0f}, 0.0f
           )
       );
       // customise the renderer...
       final LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();

// renderer.setDrawShapes(true);

       renderer.setItemLabelsVisible(true);
 //      renderer.setLabelGenerator(new StandardCategoryLabelGenerator());
       // customise the range axis...
       final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
       rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
       rangeAxis.setAutoRangeIncludesZero(false);
       rangeAxis.setUpperMargin(0.12);
       return chart;
       
   }
   // ****************************************************************************
   // * JFREECHART DEVELOPER GUIDE                                               *
   // * The JFreeChart Developer Guide, written by David Gilbert, is available   *
   // * to purchase from Object Refinery Limited:                                *
   // *                                                                          *
   // * http://www.object-refinery.ru/jfreechart/guide.html                     *
   // *                                                                          *
   // * Sales are used to provide funding for the JFreeChart project - please    * 
   // * support us so that we can continue developing free software.             *
   // ****************************************************************************
   
  /**
    * Starting point for the demonstration application.
    *
    * @param args  ignored.
    */
   public static void main(final String[] args) {
       final LineChartDemo5 demo = new LineChartDemo5("Line Chart Demo 5");
       demo.pack();
       RefineryUtilities.centerFrameOnScreen(demo);
       demo.setVisible(true);
   }

}


      </source>
   
  
 
  



JFreeChart: Line Chart Demo 6

   <source lang="java">

/* ===========================================================

* JFreeChart : a free chart library for the Java(tm) platform
* ===========================================================
*
* (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.
*
* Project Info:  http://www.jfree.org/jfreechart/index.html
*
* 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.
*
* [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
* in the United States and other countries.]
*
* -------------------
* LineChartDemo6.java
* -------------------
* (C) Copyright 2004, by Object Refinery Limited and Contributors.
*
* Original Author:  David Gilbert (for Object Refinery Limited);
* Contributor(s):   -;
*
* $Id: LineChartDemo6.java,v 1.5 2004/04/26 19:11:55 taqua Exp $
*
* Changes
* -------
* 27-Jan-2004 : Version 1 (DG);
* 
*/

package org.jfree.chart.demo; import java.awt.Color; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; import org.jfree.ui.Spacer; /**

* A simple demonstration application showing how to create a line chart using data from an
* {@link XYDataset}.
*
*/

public class LineChartDemo6 extends ApplicationFrame {

   /**
    * Creates a new demo.
    *
    * @param title  the frame title.
    */
   public LineChartDemo6(final String title) {
       super(title);
       final XYDataset dataset = createDataset();
       final JFreeChart chart = createChart(dataset);
       final ChartPanel chartPanel = new ChartPanel(chart);
       chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
       setContentPane(chartPanel);
   }
   
   /**
    * Creates a sample dataset.
    * 
    * @return a sample dataset.
    */
   private XYDataset createDataset() {
       
       final XYSeries series1 = new XYSeries("First");
       series1.add(1.0, 1.0);
       series1.add(2.0, 4.0);
       series1.add(3.0, 3.0);
       series1.add(4.0, 5.0);
       series1.add(5.0, 5.0);
       series1.add(6.0, 7.0);
       series1.add(7.0, 7.0);
       series1.add(8.0, 8.0);
       final XYSeries series2 = new XYSeries("Second");
       series2.add(1.0, 5.0);
       series2.add(2.0, 7.0);
       series2.add(3.0, 6.0);
       series2.add(4.0, 8.0);
       series2.add(5.0, 4.0);
       series2.add(6.0, 4.0);
       series2.add(7.0, 2.0);
       series2.add(8.0, 1.0);
       final XYSeries series3 = new XYSeries("Third");
       series3.add(3.0, 4.0);
       series3.add(4.0, 3.0);
       series3.add(5.0, 2.0);
       series3.add(6.0, 3.0);
       series3.add(7.0, 6.0);
       series3.add(8.0, 3.0);
       series3.add(9.0, 4.0);
       series3.add(10.0, 3.0);
       final XYSeriesCollection dataset = new XYSeriesCollection();
       dataset.addSeries(series1);
       dataset.addSeries(series2);
       dataset.addSeries(series3);
               
       return dataset;
       
   }
   
   /**
    * Creates a chart.
    * 
    * @param dataset  the data for the chart.
    * 
    * @return a chart.
    */
   private JFreeChart createChart(final XYDataset dataset) {
       
       // create the chart...
       final JFreeChart chart = ChartFactory.createXYLineChart(
           "Line Chart Demo 6",      // chart title
           "X",                      // x axis label
           "Y",                      // y axis label
           dataset,                  // data
           PlotOrientation.VERTICAL,
           true,                     // include legend
           true,                     // tooltips
           false                     // urls
       );
       // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
       chart.setBackgroundPaint(Color.white);

// final StandardLegend legend = (StandardLegend) chart.getLegend();

 //      legend.setDisplaySeriesShapes(true);
       
       // get a reference to the plot for further customisation...
       final XYPlot plot = chart.getXYPlot();
       plot.setBackgroundPaint(Color.lightGray);
   //    plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0));
       plot.setDomainGridlinePaint(Color.white);
       plot.setRangeGridlinePaint(Color.white);
       
       final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
       renderer.setSeriesLinesVisible(0, false);
       renderer.setSeriesShapesVisible(1, false);
       plot.setRenderer(renderer);
       // change the auto tick unit selection to integer units only...
       final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
       rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
       // OPTIONAL CUSTOMISATION COMPLETED.
               
       return chart;
       
   }
   // ****************************************************************************
   // * JFREECHART DEVELOPER GUIDE                                               *
   // * The JFreeChart Developer Guide, written by David Gilbert, is available   *
   // * to purchase from Object Refinery Limited:                                *
   // *                                                                          *
   // * http://www.object-refinery.ru/jfreechart/guide.html                     *
   // *                                                                          *
   // * Sales are used to provide funding for the JFreeChart project - please    * 
   // * support us so that we can continue developing free software.             *
   // ****************************************************************************
   
   /**
    * Starting point for the demonstration application.
    *
    * @param args  ignored.
    */
   public static void main(final String[] args) {
       final LineChartDemo6 demo = new LineChartDemo6("Line Chart Demo 6");
       demo.pack();
       RefineryUtilities.centerFrameOnScreen(demo);
       demo.setVisible(true);
   }

}

      </source>
   
  
 
  



JFreeChart: Normal Distribution Demo

   <source lang="java">

/* ===========================================================

* JFreeChart : a free chart library for the Java(tm) platform
* ===========================================================
*
* (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.
*
* Project Info:  http://www.jfree.org/jfreechart/index.html
*
* 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.
*
* [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
* in the United States and other countries.]
*
* ---------------------------
* NormalDistributionDemo.java
* ---------------------------
* (C) Copyright 2004, by Object Refinery Limited and Contributors.
*
* Original Author:  David Gilbert (for Object Refinery Limited);
* Contributor(s):   -;
*
* $Id: NormalDistributionDemo.java,v 1.1 2004/05/26 13:02:03 mungady Exp $
*
* Changes
* -------
* 25-May-2004 : Version 1 (DG);
*
*/

package org.jfree.chart.demo; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.function.Function2D; import org.jfree.data.function.NormalDistributionFunction2D; import org.jfree.data.general.DatasetUtilities; import org.jfree.data.xy.XYDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; /**

* This demo shows a normal distribution function.
*/

public class NormalDistributionDemo extends ApplicationFrame {

   /**
    * A demonstration application showing a normal distribution.
    *
    * @param title  the frame title.
    */
   public NormalDistributionDemo(final String title) {
       super(title);
       Function2D normal = new NormalDistributionFunction2D(0.0, 1.0);
       XYDataset dataset = DatasetUtilities.sampleFunction2D(normal, -5.0, 5.0, 100, "Normal");
       final JFreeChart chart = ChartFactory.createXYLineChart(
           "XY Series Demo",
           "X", 
           "Y", 
           dataset,
           PlotOrientation.VERTICAL,
           true,
           true,
           false
       );
       final ChartPanel chartPanel = new ChartPanel(chart);
       chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
       setContentPane(chartPanel);
   }
   // ****************************************************************************
   // * JFREECHART DEVELOPER GUIDE                                               *
   // * The JFreeChart Developer Guide, written by David Gilbert, is available   *
   // * to purchase from Object Refinery Limited:                                *
   // *                                                                          *
   // * http://www.object-refinery.ru/jfreechart/guide.html                     *
   // *                                                                          *
   // * Sales are used to provide funding for the JFreeChart project - please    * 
   // * support us so that we can continue developing free software.             *
   // ****************************************************************************
   
   /**
    * Starting point for the demonstration application.
    *
    * @param args  ignored.
    */
   public static void main(final String[] args) {
       final NormalDistributionDemo demo = new NormalDistributionDemo("Normal Distribution Demo");
       demo.pack();
       RefineryUtilities.centerFrameOnScreen(demo);
       demo.setVisible(true);
   }

}


      </source>