<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FChart%2FOverlaid_XY_Plot_Chart</id>
		<title>Java/Chart/Overlaid XY Plot Chart - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FChart%2FOverlaid_XY_Plot_Chart"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Chart/Overlaid_XY_Plot_Chart&amp;action=history"/>
		<updated>2026-04-21T16:05:30Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Chart/Overlaid_XY_Plot_Chart&amp;diff=8019&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Chart/Overlaid_XY_Plot_Chart&amp;diff=8019&amp;oldid=prev"/>
				<updated>2010-06-01T06:52:17Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:52, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Chart/Overlaid_XY_Plot_Chart&amp;diff=8018&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Chart/Overlaid_XY_Plot_Chart&amp;diff=8018&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== JFreeChart: Overlaid XY Plot Demo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. &lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * -----------------------&lt;br /&gt;
 * OverlaidXYPlotDemo.java&lt;br /&gt;
 * -----------------------&lt;br /&gt;
 * (C) Copyright 2002-2004, by Object Refinery Limited.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited).&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: OverlaidXYPlotDemo.java,v 1.28 2004/06/02 09:48:24 mungady Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes&lt;br /&gt;
 * -------&lt;br /&gt;
 * 28-Mar-2002 : Version 1 (DG);&lt;br /&gt;
 * 23-Apr-2002 : Modified to use new OverlaidXYPlot class (DG);&lt;br /&gt;
 * 31-May-2002 : Changed plot background color to yellow, to check that it works (DG);&lt;br /&gt;
 * 13-Jun-2002 : Renamed OverlaidPlotDemo--&amp;gt;OverlaidXYPlotDemo (DG);&lt;br /&gt;
 * 25-Jun-2002 : Removed unnecessary imports (DG);&lt;br /&gt;
 * 11-Oct-2002 : Fixed errors reported by Checkstyle (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.text.DecimalFormat;&lt;br /&gt;
import java.text.SimpleDateFormat;&lt;br /&gt;
import org.jfree.chart.ChartPanel;&lt;br /&gt;
import org.jfree.chart.JFreeChart;&lt;br /&gt;
import org.jfree.chart.annotations.XYTextAnnotation;&lt;br /&gt;
import org.jfree.chart.axis.DateAxis;&lt;br /&gt;
import org.jfree.chart.axis.DateTickMarkPosition;&lt;br /&gt;
import org.jfree.chart.axis.NumberAxis;&lt;br /&gt;
import org.jfree.chart.axis.ValueAxis;&lt;br /&gt;
import org.jfree.chart.labels.StandardXYToolTipGenerator;&lt;br /&gt;
import org.jfree.chart.plot.DatasetRenderingOrder;&lt;br /&gt;
import org.jfree.chart.plot.XYPlot;&lt;br /&gt;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;&lt;br /&gt;
import org.jfree.chart.renderer.xy.XYBarRenderer;&lt;br /&gt;
import org.jfree.chart.renderer.xy.XYItemRenderer;&lt;br /&gt;
import org.jfree.data.time.Day;&lt;br /&gt;
import org.jfree.data.time.TimeSeries;&lt;br /&gt;
import org.jfree.data.time.TimeSeriesCollection;&lt;br /&gt;
import org.jfree.data.xy.IntervalXYDataset;&lt;br /&gt;
import org.jfree.data.xy.XYDataset;&lt;br /&gt;
import org.jfree.date.SerialDate;&lt;br /&gt;
import org.jfree.ui.ApplicationFrame;&lt;br /&gt;
import org.jfree.ui.RefineryUtilities;&lt;br /&gt;
/**&lt;br /&gt;
 * A demonstration application showing a time series chart overlaid with a vertical XY bar chart.&lt;br /&gt;
 */&lt;br /&gt;
public class OverlaidXYPlotDemo extends ApplicationFrame {&lt;br /&gt;
    /**&lt;br /&gt;
     * Constructs a new demonstration application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param title  the frame title.&lt;br /&gt;
     */&lt;br /&gt;
    public OverlaidXYPlotDemo(final String title) {&lt;br /&gt;
        super(title);&lt;br /&gt;
        final JFreeChart chart = createOverlaidChart();&lt;br /&gt;
        final ChartPanel panel = new ChartPanel(chart, true, true, true, true, true);&lt;br /&gt;
        panel.setPreferredSize(new java.awt.Dimension(500, 270));&lt;br /&gt;
        setContentPane(panel);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates an overlaid chart.&lt;br /&gt;
     *&lt;br /&gt;
     * @return The chart.&lt;br /&gt;
     */&lt;br /&gt;
    private JFreeChart createOverlaidChart() {&lt;br /&gt;
        // create plot ...&lt;br /&gt;
        final IntervalXYDataset data1 = createDataset1();&lt;br /&gt;
        final XYItemRenderer renderer1 = new XYBarRenderer(0.20);&lt;br /&gt;
        renderer1.setToolTipGenerator(&lt;br /&gt;
            new StandardXYToolTipGenerator(&lt;br /&gt;
                StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,&lt;br /&gt;
                new SimpleDateFormat(&amp;quot;d-MMM-yyyy&amp;quot;), new DecimalFormat(&amp;quot;0.00&amp;quot;)&lt;br /&gt;
            )&lt;br /&gt;
        );&lt;br /&gt;
        final DateAxis domainAxis = new DateAxis(&amp;quot;Date&amp;quot;);&lt;br /&gt;
        domainAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);&lt;br /&gt;
        final ValueAxis rangeAxis = new NumberAxis(&amp;quot;Value&amp;quot;);&lt;br /&gt;
        final XYPlot plot = new XYPlot(data1, domainAxis, rangeAxis, renderer1);&lt;br /&gt;
        final double x = new Day(9, SerialDate.MARCH, 2002).getMiddleMillisecond();&lt;br /&gt;
        final XYTextAnnotation annotation = new XYTextAnnotation(&amp;quot;Hello!&amp;quot;, x, 10000.0);&lt;br /&gt;
        annotation.setFont(new Font(&amp;quot;SansSerif&amp;quot;, Font.PLAIN, 9));&lt;br /&gt;
        plot.addAnnotation(annotation);&lt;br /&gt;
        // add a second dataset and renderer...&lt;br /&gt;
        final XYDataset data2 = createDataset2();&lt;br /&gt;
        final XYItemRenderer renderer2 = new StandardXYItemRenderer();&lt;br /&gt;
        renderer2.setToolTipGenerator(&lt;br /&gt;
            new StandardXYToolTipGenerator(&lt;br /&gt;
                StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,&lt;br /&gt;
                new SimpleDateFormat(&amp;quot;d-MMM-yyyy&amp;quot;), new DecimalFormat(&amp;quot;0.00&amp;quot;)&lt;br /&gt;
            )&lt;br /&gt;
        );&lt;br /&gt;
        plot.setDataset(1, data2);&lt;br /&gt;
        plot.setRenderer(1, renderer2);&lt;br /&gt;
        &lt;br /&gt;
        plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);&lt;br /&gt;
        // return a new chart containing the overlaid plot...&lt;br /&gt;
        return new JFreeChart(&amp;quot;Overlaid Plot Example&amp;quot;, JFreeChart.DEFAULT_TITLE_FONT, plot, true);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a sample dataset.&lt;br /&gt;
     *&lt;br /&gt;
     * @return The dataset.&lt;br /&gt;
     */&lt;br /&gt;
    private IntervalXYDataset createDataset1() {&lt;br /&gt;
        // create dataset 1...&lt;br /&gt;
        final TimeSeries series1 = new TimeSeries(&amp;quot;Series 1&amp;quot;, Day.class);&lt;br /&gt;
        series1.add(new Day(1, SerialDate.MARCH, 2002), 12353.3);&lt;br /&gt;
        series1.add(new Day(2, SerialDate.MARCH, 2002), 13734.4);&lt;br /&gt;
        series1.add(new Day(3, SerialDate.MARCH, 2002), 14525.3);&lt;br /&gt;
        series1.add(new Day(4, SerialDate.MARCH, 2002), 13984.3);&lt;br /&gt;
        series1.add(new Day(5, SerialDate.MARCH, 2002), 12999.4);&lt;br /&gt;
        series1.add(new Day(6, SerialDate.MARCH, 2002), 14274.3);&lt;br /&gt;
        series1.add(new Day(7, SerialDate.MARCH, 2002), 15943.5);&lt;br /&gt;
        series1.add(new Day(8, SerialDate.MARCH, 2002), 14845.3);&lt;br /&gt;
        series1.add(new Day(9, SerialDate.MARCH, 2002), 14645.4);&lt;br /&gt;
        series1.add(new Day(10, SerialDate.MARCH, 2002), 16234.6);&lt;br /&gt;
        series1.add(new Day(11, SerialDate.MARCH, 2002), 17232.3);&lt;br /&gt;
        series1.add(new Day(12, SerialDate.MARCH, 2002), 14232.2);&lt;br /&gt;
        series1.add(new Day(13, SerialDate.MARCH, 2002), 13102.2);&lt;br /&gt;
        series1.add(new Day(14, SerialDate.MARCH, 2002), 14230.2);&lt;br /&gt;
        series1.add(new Day(15, SerialDate.MARCH, 2002), 11235.2);&lt;br /&gt;
        return new TimeSeriesCollection(series1);&lt;br /&gt;
    }&lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    // * JFREECHART DEVELOPER GUIDE                                               *&lt;br /&gt;
    // * The JFreeChart Developer Guide, written by David Gilbert, is available   *&lt;br /&gt;
    // * to purchase from Object Refinery Limited:                                *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * http://www.object-refinery.ru/jfreechart/guide.html                     *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * Sales are used to provide funding for the JFreeChart project - please    * &lt;br /&gt;
    // * support us so that we can continue developing free software.             *&lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a sample dataset.&lt;br /&gt;
     *&lt;br /&gt;
     * @return The dataset.&lt;br /&gt;
     */&lt;br /&gt;
    private XYDataset createDataset2() {&lt;br /&gt;
        // create dataset 2...&lt;br /&gt;
        final TimeSeries series2 = new TimeSeries(&amp;quot;Series 2&amp;quot;, Day.class);&lt;br /&gt;
        series2.add(new Day(3, SerialDate.MARCH, 2002), 16853.2);&lt;br /&gt;
        series2.add(new Day(4, SerialDate.MARCH, 2002), 19642.3);&lt;br /&gt;
        series2.add(new Day(5, SerialDate.MARCH, 2002), 18253.5);&lt;br /&gt;
        series2.add(new Day(6, SerialDate.MARCH, 2002), 15352.3);&lt;br /&gt;
        series2.add(new Day(7, SerialDate.MARCH, 2002), 13532.0);&lt;br /&gt;
        series2.add(new Day(8, SerialDate.MARCH, 2002), 12635.3);&lt;br /&gt;
        series2.add(new Day(9, SerialDate.MARCH, 2002), 13998.2);&lt;br /&gt;
        series2.add(new Day(10, SerialDate.MARCH, 2002), 11943.2);&lt;br /&gt;
        series2.add(new Day(11, SerialDate.MARCH, 2002), 16943.9);&lt;br /&gt;
        series2.add(new Day(12, SerialDate.MARCH, 2002), 17843.2);&lt;br /&gt;
        series2.add(new Day(13, SerialDate.MARCH, 2002), 16495.3);&lt;br /&gt;
        series2.add(new Day(14, SerialDate.MARCH, 2002), 17943.6);&lt;br /&gt;
        series2.add(new Day(15, SerialDate.MARCH, 2002), 18500.7);&lt;br /&gt;
        series2.add(new Day(16, SerialDate.MARCH, 2002), 19595.9);&lt;br /&gt;
        final TimeSeriesCollection tsc = new TimeSeriesCollection(series2);&lt;br /&gt;
        return tsc;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Starting point for the demonstration application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final OverlaidXYPlotDemo demo = new OverlaidXYPlotDemo(&amp;quot;Overlaid XYPlot Demo&amp;quot;);&lt;br /&gt;
        demo.pack();&lt;br /&gt;
        RefineryUtilities.centerFrameOnScreen(demo);&lt;br /&gt;
        demo.setVisible(true);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JFreeChart: Overlaid XY Plot Demo 2 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* ===========================================================&lt;br /&gt;
 * JFreeChart : a free chart library for the Java(tm) platform&lt;br /&gt;
 * ===========================================================&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright 2000-2004, by Object Refinery Limited and Contributors.&lt;br /&gt;
 *&lt;br /&gt;
 * Project Info:  http://www.jfree.org/jfreechart/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * This library is free software; you can redistribute it and/or modify it under the terms&lt;br /&gt;
 * of the GNU Lesser General Public License as published by the Free Software Foundation;&lt;br /&gt;
 * either version 2.1 of the License, or (at your option) any later version.&lt;br /&gt;
 *&lt;br /&gt;
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;&lt;br /&gt;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU Lesser General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU Lesser General Public License along with this&lt;br /&gt;
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,&lt;br /&gt;
 * Boston, MA 02111-1307, USA.&lt;br /&gt;
 *&lt;br /&gt;
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. &lt;br /&gt;
 * in the United States and other countries.]&lt;br /&gt;
 *&lt;br /&gt;
 * ------------------------&lt;br /&gt;
 * OverlaidXYPlotDemo2.java&lt;br /&gt;
 * ------------------------&lt;br /&gt;
 * (C) Copyright 2003, 2004, by Object Refinery Limited.&lt;br /&gt;
 *&lt;br /&gt;
 * Original Author:  David Gilbert (for Object Refinery Limited).&lt;br /&gt;
 * Contributor(s):   -;&lt;br /&gt;
 *&lt;br /&gt;
 * $Id: OverlaidXYPlotDemo2.java,v 1.20 2004/06/02 09:48:24 mungady Exp $&lt;br /&gt;
 *&lt;br /&gt;
 * Changes&lt;br /&gt;
 * -------&lt;br /&gt;
 * 03-Jul-2003 : Version 1 (DG);&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
package org.jfree.chart.demo;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.text.DecimalFormat;&lt;br /&gt;
import java.text.SimpleDateFormat;&lt;br /&gt;
import org.jfree.chart.ChartPanel;&lt;br /&gt;
import org.jfree.chart.JFreeChart;&lt;br /&gt;
import org.jfree.chart.annotations.XYTextAnnotation;&lt;br /&gt;
import org.jfree.chart.axis.DateAxis;&lt;br /&gt;
import org.jfree.chart.axis.DateTickMarkPosition;&lt;br /&gt;
import org.jfree.chart.axis.NumberAxis;&lt;br /&gt;
import org.jfree.chart.axis.ValueAxis;&lt;br /&gt;
import org.jfree.chart.labels.StandardXYToolTipGenerator;&lt;br /&gt;
import org.jfree.chart.plot.DatasetRenderingOrder;&lt;br /&gt;
import org.jfree.chart.plot.PlotOrientation;&lt;br /&gt;
import org.jfree.chart.plot.XYPlot;&lt;br /&gt;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;&lt;br /&gt;
import org.jfree.chart.renderer.xy.XYBarRenderer;&lt;br /&gt;
import org.jfree.chart.renderer.xy.XYItemRenderer;&lt;br /&gt;
import org.jfree.data.time.Day;&lt;br /&gt;
import org.jfree.data.time.TimePeriodAnchor;&lt;br /&gt;
import org.jfree.data.time.TimeSeries;&lt;br /&gt;
import org.jfree.data.time.TimeSeriesCollection;&lt;br /&gt;
import org.jfree.data.xy.IntervalXYDataset;&lt;br /&gt;
import org.jfree.data.xy.XYDataset;&lt;br /&gt;
import org.jfree.date.SerialDate;&lt;br /&gt;
import org.jfree.ui.ApplicationFrame;&lt;br /&gt;
import org.jfree.ui.RefineryUtilities;&lt;br /&gt;
/**&lt;br /&gt;
 * A demonstration application showing an overlaid XY plot with dual range axes.&lt;br /&gt;
 */&lt;br /&gt;
public class OverlaidXYPlotDemo2 extends ApplicationFrame {&lt;br /&gt;
    /**&lt;br /&gt;
     * Constructs a new demonstration application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param title  the frame title.&lt;br /&gt;
     */&lt;br /&gt;
    public OverlaidXYPlotDemo2(final String title) {&lt;br /&gt;
        super(title);&lt;br /&gt;
        final JFreeChart chart = createOverlaidChart();&lt;br /&gt;
        final ChartPanel panel = new ChartPanel(chart, true, true, true, true, true);&lt;br /&gt;
        panel.setPreferredSize(new java.awt.Dimension(500, 270));&lt;br /&gt;
        setContentPane(panel);&lt;br /&gt;
    }&lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    // * JFREECHART DEVELOPER GUIDE                                               *&lt;br /&gt;
    // * The JFreeChart Developer Guide, written by David Gilbert, is available   *&lt;br /&gt;
    // * to purchase from Object Refinery Limited:                                *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * http://www.object-refinery.ru/jfreechart/guide.html                     *&lt;br /&gt;
    // *                                                                          *&lt;br /&gt;
    // * Sales are used to provide funding for the JFreeChart project - please    * &lt;br /&gt;
    // * support us so that we can continue developing free software.             *&lt;br /&gt;
    // ****************************************************************************&lt;br /&gt;
    &lt;br /&gt;
    /**&lt;br /&gt;
     * Creates an overlaid chart.&lt;br /&gt;
     *&lt;br /&gt;
     * @return The chart.&lt;br /&gt;
     */&lt;br /&gt;
    private JFreeChart createOverlaidChart() {&lt;br /&gt;
        final DateAxis domainAxis = new DateAxis(&amp;quot;Date&amp;quot;);&lt;br /&gt;
        domainAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);&lt;br /&gt;
        final ValueAxis rangeAxis = new NumberAxis(&amp;quot;Value&amp;quot;);&lt;br /&gt;
        // create plot...&lt;br /&gt;
        final IntervalXYDataset data1 = createDataset1();&lt;br /&gt;
        final XYItemRenderer renderer1 = new XYBarRenderer(0.20);&lt;br /&gt;
        renderer1.setToolTipGenerator(&lt;br /&gt;
            new StandardXYToolTipGenerator(&lt;br /&gt;
                StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,&lt;br /&gt;
                new SimpleDateFormat(&amp;quot;d-MMM-yyyy&amp;quot;), new DecimalFormat(&amp;quot;0.00&amp;quot;)&lt;br /&gt;
            )&lt;br /&gt;
        );&lt;br /&gt;
        final XYPlot plot = new XYPlot(data1, domainAxis, rangeAxis, renderer1);&lt;br /&gt;
        final double x = new Day(9, SerialDate.MARCH, 2002).getMiddleMillisecond();&lt;br /&gt;
        final XYTextAnnotation annotation = new XYTextAnnotation(&amp;quot;Hello!&amp;quot;, x, 10000.0);&lt;br /&gt;
        annotation.setFont(new Font(&amp;quot;SansSerif&amp;quot;, Font.PLAIN, 9));&lt;br /&gt;
        plot.addAnnotation(annotation);&lt;br /&gt;
        final ValueAxis rangeAxis2 = new NumberAxis(&amp;quot;Value 2&amp;quot;);&lt;br /&gt;
        plot.setRangeAxis(1, rangeAxis2);&lt;br /&gt;
        // create subplot 2...&lt;br /&gt;
        final XYDataset data2A = createDataset2A();&lt;br /&gt;
        final XYItemRenderer renderer2A = new StandardXYItemRenderer();&lt;br /&gt;
        renderer2A.setToolTipGenerator(&lt;br /&gt;
            new StandardXYToolTipGenerator(&lt;br /&gt;
                StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,&lt;br /&gt;
                new SimpleDateFormat(&amp;quot;d-MMM-yyyy&amp;quot;), new DecimalFormat(&amp;quot;0.00&amp;quot;)&lt;br /&gt;
            )&lt;br /&gt;
        );&lt;br /&gt;
        plot.setDataset(1, data2A);&lt;br /&gt;
        plot.setRenderer(1, renderer2A);&lt;br /&gt;
        &lt;br /&gt;
        final XYDataset data2B = createDataset2B();&lt;br /&gt;
        plot.setDataset(2, data2B);&lt;br /&gt;
        plot.setRenderer(2, new StandardXYItemRenderer());&lt;br /&gt;
        plot.mapDatasetToRangeAxis(2, 1);&lt;br /&gt;
        plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);&lt;br /&gt;
        plot.setOrientation(PlotOrientation.VERTICAL);&lt;br /&gt;
        &lt;br /&gt;
        // return a new chart containing the overlaid plot...&lt;br /&gt;
        return new JFreeChart(&amp;quot;Overlaid Plot Example&amp;quot;, JFreeChart.DEFAULT_TITLE_FONT, plot, true);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a sample dataset.&lt;br /&gt;
     *&lt;br /&gt;
     * @return The dataset.&lt;br /&gt;
     */&lt;br /&gt;
    private IntervalXYDataset createDataset1() {&lt;br /&gt;
        // create dataset 1...&lt;br /&gt;
        final TimeSeries series1 = new TimeSeries(&amp;quot;Series 1&amp;quot;, Day.class);&lt;br /&gt;
        series1.add(new Day(1, SerialDate.MARCH, 2002), 12353.3);&lt;br /&gt;
        series1.add(new Day(2, SerialDate.MARCH, 2002), 13734.4);&lt;br /&gt;
        series1.add(new Day(3, SerialDate.MARCH, 2002), 14525.3);&lt;br /&gt;
        series1.add(new Day(4, SerialDate.MARCH, 2002), 13984.3);&lt;br /&gt;
        series1.add(new Day(5, SerialDate.MARCH, 2002), 12999.4);&lt;br /&gt;
        series1.add(new Day(6, SerialDate.MARCH, 2002), 14274.3);&lt;br /&gt;
        series1.add(new Day(7, SerialDate.MARCH, 2002), 15943.5);&lt;br /&gt;
        series1.add(new Day(8, SerialDate.MARCH, 2002), 14845.3);&lt;br /&gt;
        series1.add(new Day(9, SerialDate.MARCH, 2002), 14645.4);&lt;br /&gt;
        series1.add(new Day(10, SerialDate.MARCH, 2002), 16234.6);&lt;br /&gt;
        series1.add(new Day(11, SerialDate.MARCH, 2002), 17232.3);&lt;br /&gt;
        series1.add(new Day(12, SerialDate.MARCH, 2002), 14232.2);&lt;br /&gt;
        series1.add(new Day(13, SerialDate.MARCH, 2002), 13102.2);&lt;br /&gt;
        series1.add(new Day(14, SerialDate.MARCH, 2002), 14230.2);&lt;br /&gt;
        series1.add(new Day(15, SerialDate.MARCH, 2002), 11235.2);&lt;br /&gt;
        final TimeSeriesCollection result = new TimeSeriesCollection(series1);&lt;br /&gt;
        return result;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a sample dataset.&lt;br /&gt;
     *&lt;br /&gt;
     * @return The dataset.&lt;br /&gt;
     */&lt;br /&gt;
    private XYDataset createDataset2A() {&lt;br /&gt;
        // create dataset 2...&lt;br /&gt;
        final TimeSeries series2 = new TimeSeries(&amp;quot;Series 2&amp;quot;, Day.class);&lt;br /&gt;
        series2.add(new Day(3, SerialDate.MARCH, 2002), 16853.2);&lt;br /&gt;
        series2.add(new Day(4, SerialDate.MARCH, 2002), 19642.3);&lt;br /&gt;
        series2.add(new Day(5, SerialDate.MARCH, 2002), 18253.5);&lt;br /&gt;
        series2.add(new Day(6, SerialDate.MARCH, 2002), 15352.3);&lt;br /&gt;
        series2.add(new Day(7, SerialDate.MARCH, 2002), 13532.0);&lt;br /&gt;
        series2.add(new Day(8, SerialDate.MARCH, 2002), 12635.3);&lt;br /&gt;
        series2.add(new Day(9, SerialDate.MARCH, 2002), 13998.2);&lt;br /&gt;
        series2.add(new Day(10, SerialDate.MARCH, 2002), 11943.2);&lt;br /&gt;
        series2.add(new Day(11, SerialDate.MARCH, 2002), 16943.9);&lt;br /&gt;
        series2.add(new Day(12, SerialDate.MARCH, 2002), 17843.2);&lt;br /&gt;
        series2.add(new Day(13, SerialDate.MARCH, 2002), 16495.3);&lt;br /&gt;
        series2.add(new Day(14, SerialDate.MARCH, 2002), 17943.6);&lt;br /&gt;
        series2.add(new Day(15, SerialDate.MARCH, 2002), 18500.7);&lt;br /&gt;
        series2.add(new Day(16, SerialDate.MARCH, 2002), 19595.9);&lt;br /&gt;
        final TimeSeriesCollection result = new TimeSeriesCollection(series2);&lt;br /&gt;
        result.setXPosition(TimePeriodAnchor.MIDDLE);&lt;br /&gt;
        return result;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Creates a sample dataset.&lt;br /&gt;
     *&lt;br /&gt;
     * @return The dataset.&lt;br /&gt;
     */&lt;br /&gt;
    private XYDataset createDataset2B() {&lt;br /&gt;
        // create dataset 2...&lt;br /&gt;
        final TimeSeries series2 = new TimeSeries(&amp;quot;Series 2B&amp;quot;, Day.class);&lt;br /&gt;
        series2.add(new Day(3, SerialDate.MARCH, 2002), 43.9);&lt;br /&gt;
        series2.add(new Day(4, SerialDate.MARCH, 2002), 72.6);&lt;br /&gt;
        series2.add(new Day(5, SerialDate.MARCH, 2002), 89.4);&lt;br /&gt;
        series2.add(new Day(6, SerialDate.MARCH, 2002), 23.8);&lt;br /&gt;
        series2.add(new Day(7, SerialDate.MARCH, 2002), 45.0);&lt;br /&gt;
        series2.add(new Day(8, SerialDate.MARCH, 2002), 65.8);&lt;br /&gt;
        series2.add(new Day(9, SerialDate.MARCH, 2002), 92.1);&lt;br /&gt;
        series2.add(new Day(10, SerialDate.MARCH, 2002), 84.7);&lt;br /&gt;
        series2.add(new Day(11, SerialDate.MARCH, 2002), 77.2);&lt;br /&gt;
        series2.add(new Day(12, SerialDate.MARCH, 2002), 65.1);&lt;br /&gt;
        series2.add(new Day(13, SerialDate.MARCH, 2002), 78.5);&lt;br /&gt;
        series2.add(new Day(14, SerialDate.MARCH, 2002), 75.3);&lt;br /&gt;
        series2.add(new Day(15, SerialDate.MARCH, 2002), 69.9);&lt;br /&gt;
        series2.add(new Day(20, SerialDate.MARCH, 2002), 56.6);&lt;br /&gt;
        final TimeSeriesCollection result = new TimeSeriesCollection(series2);&lt;br /&gt;
        result.setXPosition(TimePeriodAnchor.MIDDLE);&lt;br /&gt;
        return result;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Starting point for the demonstration application.&lt;br /&gt;
     *&lt;br /&gt;
     * @param args  ignored.&lt;br /&gt;
     */&lt;br /&gt;
    public static void main(final String[] args) {&lt;br /&gt;
        final OverlaidXYPlotDemo2 demo = new OverlaidXYPlotDemo2(&amp;quot;Overlaid XYPlot Demo&amp;quot;);&lt;br /&gt;
        demo.pack();&lt;br /&gt;
        RefineryUtilities.centerFrameOnScreen(demo);&lt;br /&gt;
        demo.setVisible(true);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>