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

📄 mytimechartdemo.java

📁 开源图表组件JFreeChart的入门例程
💻 JAVA
字号:
/* ===========================================================
 * JFreeChart时序图的示例 by:daocaorenwwt
 * ===========================================================
 */
import java.awt.Color;
import java.text.SimpleDateFormat;

import java.io.*;

import org.jfree.chart.ChartUtilities;
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.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.time.Day;
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.RectangleInsets;
import org.jfree.ui.RefineryUtilities;

/**
 * An example of a time series chart.  For the most part, default settings are 
 * used, except that the renderer is modified to show filled shapes (as well as 
 * lines) at each data point.
 */
public class MyTimeChartDemo {

	public MyTimeChartDemo(){
	}
    /**
     * Creates a chart.
     * 
     * @param dataset  a dataset.
     * 
     * @return A chart.
     */
    public JFreeChart createChart(XYDataset dataset) {

        JFreeChart chart = ChartFactory.createTimeSeriesChart(
            "日供电量曲线",		// 图表标题
            "日期",             // X轴标签
            "万KWH",				// Y轴标签
            dataset,            // data
            true,               // create legend?
            true,               // generate tooltips?
            false               // generate URLs?
        );

        chart.setBackgroundPaint(Color.white);

        XYPlot plot = (XYPlot) chart.getPlot();
        plot.setBackgroundPaint(Color.lightGray);
        plot.setDomainGridlinePaint(Color.white);
        plot.setRangeGridlinePaint(Color.white);
        plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
        plot.setDomainCrosshairVisible(true);
        plot.setRangeCrosshairVisible(true);
        
        XYItemRenderer r = plot.getRenderer();
        if (r instanceof XYLineAndShapeRenderer) {
            XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
            renderer.setDefaultShapesVisible(true);
            renderer.setDefaultShapesFilled(true);
        }
        
        DateAxis axis = (DateAxis) plot.getDomainAxis();
        axis.setDateFormatOverride(new SimpleDateFormat("dd"));
        
        return chart;

    }
    
    /**
     * Creates a dataset, consisting of two series of monthly data.
     *
     * @return the dataset.
     */
    public XYDataset createDataset() {
	 TimeSeries s1 = new TimeSeries("04年", Day.class);
        s1.add(new Day(1,4,2004), 4674.5);
        s1.add(new Day(2,4,2004), 4779.5);
        s1.add(new Day(3,4,2004), 4687.6);
        s1.add(new Day(4,4,2004), 4361.1);
        s1.add(new Day(5,4,2004), 4118.4);
        s1.add(new Day(6,4,2004), 3827.2);
        s1.add(new Day(7,4,2004), 3484.1);
        s1.add(new Day(9,4,2004), 2910.0);
        s1.add(new Day(10,4,2004), 2745.5);
        s1.add(new Day(11,4,2004), 2695.6);
        s1.add(new Day(12,4,2004), 2856.2);
        s1.add(new Day(13,4,2004), 3098.5);
        s1.add(new Day(14,4,2004), 3603.5);
        s1.add(new Day(15,4,2004), 3917.7);
        s1.add(new Day(16,4,2004), 4324.0);
        s1.add(new Day(17,4,2004), 4421.9);
        s1.add(new Day(18,4,2004), 4519.8);
        s1.add(new Day(19,4,2004), 4431.4);
        s1.add(new Day(20,4,2004), 4496.7);
        s1.add(new Day(21,4,2004), 4852.0);
        s1.add(new Day(22,4,2004), 4828.2);
        s1.add(new Day(23,4,2004), 4676.8);
        s1.add(new Day(24,4,2004), 4946.9);
        s1.add(new Day(25,4,2004), 5029.6);
        s1.add(new Day(26,4,2004), 4855.4);
        s1.add(new Day(27,4,2004), 4568.2);

       TimeSeries s2 = new TimeSeries("05年", Day.class);
        s2.add(new Day(1,4,2004), 3628.8285);
        s2.add(new Day(2,4,2004), 3943.22208);
        s2.add(new Day(3,4,2004), 4057.8252);
        s2.add(new Day(4,4,2004), 4122.91566);
        s2.add(new Day(5,4,2004), 3941.45254);
        s2.add(new Day(6,4,2004), 4110.31018);
        s2.add(new Day(7,4,2004), 4003.93248);
        s2.add(new Day(8,4,2004), 3670.95464);
        s2.add(new Day(9,4,2004), 4093.27078);
        s2.add(new Day(10,4,2004), 4207.70892);
        s2.add(new Day(11,4,2004), 4222.36044);
        s2.add(new Day(12,4,2004), 4163.91696);
        s2.add(new Day(13,4,2004), 4168.91424);
        s2.add(new Day(14,4,2004), 3978.06244);
        s2.add(new Day(15,4,2004), 3643.0874);
        s2.add(new Day(16,4,2004), 4063.8361);
        s2.add(new Day(17,4,2004), 4104.4031);
        s2.add(new Day(18,4,2004), 4050.06692);
        s2.add(new Day(19,4,2004), 4094.12786);
		s2.add(new Day(20,4,2004), 4170.1921);
        s2.add(new Day(21,4,2004), 3926.819136);
        s2.add(new Day(22,4,2004), 3761.116284);
        s2.add(new Day(23,4,2004), 4076.93746);
        s2.add(new Day(24,4,2004), 4080.55942);
        s2.add(new Day(25,4,2004), 4103.47564);
        s2.add(new Day(26,4,2004), 4192.1167);
        s2.add(new Day(27,4,2004), 4152.39814);
        s2.add(new Day(28,4,2004), 3949.27422);
        s2.add(new Day(29,4,2004), 3949.27422);
        s2.add(new Day(30,4,2004), 3949.27422);

        TimeSeriesCollection dataset = new TimeSeriesCollection();
        dataset.addSeries(s1);
        dataset.addSeries(s2);

        dataset.setDomainIsPointsInTime(true);

        return dataset;

    }
    
    /**
     * Starting point for the demonstration application.
     *
     * @param args  ignored.
     */
    public static void main(String[] args) {
		
		MyTimeChartDemo myChr = new MyTimeChartDemo();
        XYDataset dataset = myChr.createDataset();
        JFreeChart chart = myChr.createChart(dataset);
		try{
			File jpFile = new File("D:\\img\\MyTimeChartDemo.jpg");
			File jpFile2 = new File("d:\\img\\MyTimeChartDemo.png");
			ChartUtilities.saveChartAsJPEG(jpFile,chart,400,400);
			ChartUtilities.saveChartAsPNG(jpFile2,chart,400,400);
		}
		catch(Exception e){
		}

    }
}

⌨️ 快捷键说明

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