⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 differencechartdemo2.java

📁 在软件开发中用来绘制各种图表的源码
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/* -------------------------
 * DifferenceChartDemo2.java
 * -------------------------
 * (C) Copyright 2004, 2005, by Object Refinery Limited.
 *
 */

package demo;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.DateTickMarkPosition;
import org.jfree.chart.plot.IntervalMarker;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYDifferenceRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Day;
import org.jfree.data.time.Minute;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.GradientPaintTransformType;
import org.jfree.ui.Layer;
import org.jfree.ui.RectangleAnchor;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;
import org.jfree.ui.StandardGradientPaintTransformer;
import org.jfree.ui.TextAnchor;

/**
 * A simple demonstration of the {@link XYDifferenceRenderer}.  The sunrise 
 * and sunset times for this demo were obtained from: 
 * 
 *     http://www.sunrisesunset.com/
 *
 */
public class DifferenceChartDemo2 extends ApplicationFrame {

    /**
     * Creates a new demo.
     *
     * @param title  the frame title.
     */
    public DifferenceChartDemo2(String title) {

        super(title);
        XYDataset dataset = createDataset();
        JFreeChart chart = createChart(dataset);
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
        setContentPane(chartPanel);

    }
  
    /**
     * Creates a sample dataset.
     * 
     * @return A sample dataset.
     */
    private static XYDataset createDataset() {
        TimeSeries series1 = createSunriseSeries();
        TimeSeries series2 = createSunsetSeries();
        TimeSeriesCollection dataset = new TimeSeriesCollection();
        dataset.addSeries(series1);
        dataset.addSeries(series2);
        return dataset;
    }
    
    /**
     * A utility method for creating a value based on a time.
     *
     * @param hour  the hour.
     * @param min  the minute.
     *
     * @return a value.
     */  
    private static Long time(int hour, int min) {
        Minute m = new Minute(min, hour, 1, 1, 1970);
        return new Long(m.getFirstMillisecond());
    }
    
    /**
     * Creates a time series containing sunrise times for London in 2004.
     *
     * @return A time series containing sunrise times.
     */
    public static TimeSeries createSunriseSeries() {
        
        TimeSeries series = new TimeSeries("Sunrise");
        
        series.add(new Day(1, 1, 2004), time(8, 5));
        series.add(new Day(2, 1, 2004), time(8, 5));
        series.add(new Day(3, 1, 2004), time(8, 5));
        series.add(new Day(4, 1, 2004), time(8, 5));
        series.add(new Day(5, 1, 2004), time(8, 5));
        series.add(new Day(6, 1, 2004), time(8, 4));
        series.add(new Day(7, 1, 2004), time(8, 4));
        series.add(new Day(8, 1, 2004), time(8, 4));
        series.add(new Day(9, 1, 2004), time(8, 3));
        series.add(new Day(10, 1, 2004), time(8, 3));
        series.add(new Day(11, 1, 2004), time(8, 2));
        series.add(new Day(12, 1, 2004), time(8, 1));
        series.add(new Day(13, 1, 2004), time(8, 1));
        series.add(new Day(14, 1, 2004), time(8, 0));
        series.add(new Day(15, 1, 2004), time(7, 59));
        series.add(new Day(16, 1, 2004), time(7, 58));
        series.add(new Day(17, 1, 2004), time(7, 58));
        series.add(new Day(18, 1, 2004), time(7, 57));
        series.add(new Day(19, 1, 2004), time(7, 56));
        series.add(new Day(20, 1, 2004), time(7, 55));
        series.add(new Day(21, 1, 2004), time(7, 54));
        series.add(new Day(22, 1, 2004), time(7, 53));
        series.add(new Day(23, 1, 2004), time(7, 51));
        series.add(new Day(24, 1, 2004), time(7, 50));
        series.add(new Day(25, 1, 2004), time(7, 49));
        series.add(new Day(26, 1, 2004), time(7, 48));
        series.add(new Day(27, 1, 2004), time(7, 46));
        series.add(new Day(28, 1, 2004), time(7, 45));
        series.add(new Day(29, 1, 2004), time(7, 44));
        series.add(new Day(30, 1, 2004), time(7, 42));
        series.add(new Day(31, 1, 2004), time(7, 41));
        
        series.add(new Day(1, 2, 2004), time(7, 39));
        series.add(new Day(2, 2, 2004), time(7, 38));
        series.add(new Day(3, 2, 2004), time(7, 36));
        series.add(new Day(4, 2, 2004), time(7, 35));
        series.add(new Day(5, 2, 2004), time(7, 33));
        series.add(new Day(6, 2, 2004), time(7, 31));
        series.add(new Day(7, 2, 2004), time(7, 30));
        series.add(new Day(8, 2, 2004), time(7, 28));
        series.add(new Day(9, 2, 2004), time(7, 26));
        series.add(new Day(10, 2, 2004), time(7, 25));
        series.add(new Day(11, 2, 2004), time(7, 23));
        series.add(new Day(12, 2, 2004), time(7, 21));
        series.add(new Day(13, 2, 2004), time(7, 19));
        series.add(new Day(14, 2, 2004), time(7, 17));
        series.add(new Day(15, 2, 2004), time(7, 15));
        series.add(new Day(16, 2, 2004), time(7, 13));
        series.add(new Day(17, 2, 2004), time(7, 11));
        series.add(new Day(18, 2, 2004), time(7, 10));
        series.add(new Day(19, 2, 2004), time(7, 8));
        series.add(new Day(20, 2, 2004), time(7, 6));
        series.add(new Day(21, 2, 2004), time(7, 4));
        series.add(new Day(22, 2, 2004), time(7, 2));
        series.add(new Day(23, 2, 2004), time(6, 59));
        series.add(new Day(24, 2, 2004), time(6, 57));
        series.add(new Day(25, 2, 2004), time(6, 55));
        series.add(new Day(26, 2, 2004), time(6, 53));
        series.add(new Day(27, 2, 2004), time(6, 51));
        series.add(new Day(28, 2, 2004), time(6, 49));
        series.add(new Day(29, 2, 2004), time(6, 47));

        series.add(new Day(1, 3, 2004), time(6, 45));
        series.add(new Day(2, 3, 2004), time(6, 43));
        series.add(new Day(3, 3, 2004), time(6, 40));
        series.add(new Day(4, 3, 2004), time(6, 38));
        series.add(new Day(5, 3, 2004), time(6, 36));
        series.add(new Day(6, 3, 2004), time(6, 34));
        series.add(new Day(7, 3, 2004), time(6, 32));
        series.add(new Day(8, 3, 2004), time(6, 29));
        series.add(new Day(9, 3, 2004), time(6, 27));
        series.add(new Day(10, 3, 2004), time(6, 25));
        series.add(new Day(11, 3, 2004), time(6, 23));
        series.add(new Day(12, 3, 2004), time(6, 20));
        series.add(new Day(13, 3, 2004), time(6, 18));
        series.add(new Day(14, 3, 2004), time(6, 16));
        series.add(new Day(15, 3, 2004), time(6, 14));
        series.add(new Day(16, 3, 2004), time(6, 11));
        series.add(new Day(17, 3, 2004), time(6, 9));
        series.add(new Day(18, 3, 2004), time(6, 7));
        series.add(new Day(19, 3, 2004), time(6, 5));
        series.add(new Day(20, 3, 2004), time(6, 2));
        series.add(new Day(21, 3, 2004), time(6, 0));
        series.add(new Day(22, 3, 2004), time(5, 58));
        series.add(new Day(23, 3, 2004), time(5, 55));
        series.add(new Day(24, 3, 2004), time(5, 53));
        series.add(new Day(25, 3, 2004), time(5, 51));
        series.add(new Day(26, 3, 2004), time(5, 49));
        series.add(new Day(27, 3, 2004), time(5, 46));
        series.add(new Day(28, 3, 2004), time(6, 44));
        series.add(new Day(29, 3, 2004), time(6, 42));
        series.add(new Day(30, 3, 2004), time(6, 39));
        series.add(new Day(31, 3, 2004), time(6, 37));
        
        series.add(new Day(1, 4, 2004), time(6, 35));
        series.add(new Day(2, 4, 2004), time(6, 33));
        series.add(new Day(3, 4, 2004), time(6, 30));
        series.add(new Day(4, 4, 2004), time(6, 28));
        series.add(new Day(5, 4, 2004), time(6, 26));
        series.add(new Day(6, 4, 2004), time(6, 24));
        series.add(new Day(7, 4, 2004), time(6, 21));
        series.add(new Day(8, 4, 2004), time(6, 19));
        series.add(new Day(9, 4, 2004), time(6, 17));
        series.add(new Day(10, 4, 2004), time(6, 15));
        series.add(new Day(11, 4, 2004), time(6, 12));
        series.add(new Day(12, 4, 2004), time(6, 10));
        series.add(new Day(13, 4, 2004), time(6, 8));
        series.add(new Day(14, 4, 2004), time(6, 6));
        series.add(new Day(15, 4, 2004), time(6, 4));
        series.add(new Day(16, 4, 2004), time(6, 2));
        series.add(new Day(17, 4, 2004), time(5, 59));
        series.add(new Day(18, 4, 2004), time(5, 57));
        series.add(new Day(19, 4, 2004), time(5, 55));
        series.add(new Day(20, 4, 2004), time(5, 53));
        series.add(new Day(21, 4, 2004), time(5, 51));
        series.add(new Day(22, 4, 2004), time(5, 49));
        series.add(new Day(23, 4, 2004), time(5, 47));
        series.add(new Day(24, 4, 2004), time(5, 45));
        series.add(new Day(25, 4, 2004), time(5, 43));
        series.add(new Day(26, 4, 2004), time(5, 41));
        series.add(new Day(27, 4, 2004), time(5, 39));
        series.add(new Day(28, 4, 2004), time(5, 37));
        series.add(new Day(29, 4, 2004), time(5, 35));
        series.add(new Day(30, 4, 2004), time(5, 33));
        
        series.add(new Day(1, 5, 2004), time(5, 31));
        series.add(new Day(2, 5, 2004), time(5, 29));
        series.add(new Day(3, 5, 2004), time(5, 28));
        series.add(new Day(4, 5, 2004), time(5, 26));
        series.add(new Day(5, 5, 2004), time(5, 24));
        series.add(new Day(6, 5, 2004), time(5, 22));
        series.add(new Day(7, 5, 2004), time(5, 20));
        series.add(new Day(8, 5, 2004), time(5, 19));
        series.add(new Day(9, 5, 2004), time(5, 17));
        series.add(new Day(10, 5, 2004), time(5, 15));
        series.add(new Day(11, 5, 2004), time(5, 14));
        series.add(new Day(12, 5, 2004), time(5, 12));
        series.add(new Day(13, 5, 2004), time(5, 11));
        series.add(new Day(14, 5, 2004), time(5, 9));
        series.add(new Day(15, 5, 2004), time(5, 8));
        series.add(new Day(16, 5, 2004), time(5, 6));
        series.add(new Day(17, 5, 2004), time(5, 5));
        series.add(new Day(18, 5, 2004), time(5, 3));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -