jfreechart之timeseries

阅读更多
package jfreechart;

import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.IOException;
import java.util.Random;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
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;
 
public class TimeSeriesChart {
 
	private TimeSeries prepareTimeSeries(String seriesName){
		TimeSeries timeSeries = new TimeSeries(seriesName);
		
		Random random = new Random();
		
		for(int i=0;i<10;i++){
			timeSeries.add(new Day(21,(i+1),2014),random.nextInt(100));
		}
		
		return timeSeries;
	}
	
    private XYDataset createDataset() {
        TimeSeriesCollection dataset = new TimeSeriesCollection();
 
        dataset.addSeries(prepareTimeSeries("timeseries01"));
        dataset.addSeries(prepareTimeSeries("timeseries02"));
        dataset.addSeries(prepareTimeSeries("timeseries03"));
        return dataset;
    }
 
    private void setUpTheme(){
        //创建主题样式  
        StandardChartTheme standardChartTheme=new StandardChartTheme("CN");  
        //设置标题字体  
        standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));  
        //设置图例的字体  
        standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));  
        //设置轴向的字体  
        standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));  
        //应用主题样式  
        ChartFactory.setChartTheme(standardChartTheme); 
    }
    
    public void createTimeSeriesChart() throws IOException {
    	setUpTheme();
        
        JFreeChart timeSeriesChart = ChartFactory.createTimeSeriesChart(
                "title", "xLabel", "yLabel", createDataset(), true,
                true, false);
        
        setStyle(timeSeriesChart);
        
        ChartUtilities.saveChartAsPNG(new File("timeseries.png"), timeSeriesChart, 600, 600);
    }
 
    private void setStyle(JFreeChart timeSeriesChart) {
    	XYPlot plot = timeSeriesChart.getXYPlot();
        plot.setDomainGridlinePaint(Color.LIGHT_GRAY);
        plot.setRangeGridlinePaint(Color.LIGHT_GRAY);
        XYItemRenderer render = plot.getRenderer();
        if (render instanceof XYLineAndShapeRenderer) {
            XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) render;
            renderer.setBaseShapesVisible(true);
            renderer.setBaseShapesFilled(true);

            // set the first time series 
            renderer.setSeriesLinesVisible(0, false);
            renderer.setSeriesPaint(0, Color.green);
        }
    }
 
    public static void main(String[] args) throws IOException {
        new TimeSeriesChart().createTimeSeriesChart();
    }
 
}

 


jfreechart之timeseries_第1张图片
 

  • jfreechart之timeseries_第2张图片
  • 大小: 38.7 KB
  • 查看图片附件

你可能感兴趣的:(chart,jfreechart,timeseries)