使用JFreeChart创建时间顺序图


package com.cs.jfreechart;

import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;

public class TimeChartDemo {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//生成时间顺序图
JFreeChart chart = ChartFactory.createTimeSeriesChart (
"图书销售统计表", //图表标题
"图书", //目录轴的显示标签
"销量", //数值轴的显示标签
getDateSet(), //数据
//PlotOrientation.HORIZONTAL, //图表方向水平
//PlotOrientation.VERTICAL, //图表方向垂直
true, //是否显示图例
false, //是否显示工具提示
false //是否生成URL
);
//设置标题及标题字体
chart.setTitle(new TextTitle("图书销售统计图",new Font("黑体",Font.ITALIC,22)));
//建一个图例
LegendTitle legendTitle = chart.getLegend(0);
//设置图例字体
legendTitle.setItemFont(new Font("宋体",Font.BOLD,14));
//获取时间顺序图plot对象
XYPlot plot = (XYPlot) chart.getPlot();
//设置柱型的颜色
plot.getRenderer().setSeriesPaint(0, Color.blue);
//取得横轴
ValueAxis categoryAxis = plot.getDomainAxis();
//设置横轴的字体
categoryAxis.setLabelFont(new Font("宋体",Font.BOLD,22));
//设置分类标签以45度倾斜
//categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
//设置分类标签字体
categoryAxis.setTickLabelFont(new Font("宋体",Font.BOLD,22));
//取得纵轴
NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
//设置纵轴的字体
numberAxis.setLabelFont(new Font("宋体",Font.BOLD,22));
//设置背景透明度(0~1)
plot.setBackgroundAlpha(0.9f);
//输出文件
FileOutputStream fos = new FileOutputStream("book.jpg");
//用ChartUtilities工具输出
ChartUtilities.writeChartAsJPEG(fos, chart, 800, 600);
fos.close();
}

private static XYDataset getDateSet() {
//创建一个TimeSeries对象
TimeSeries spring = new TimeSeries("JAVA教程",Month.class);
spring.add(new Month(10,2006),34);
spring.add(new Month(11,2006),27);
spring.add(new Month(12,2006),31);
spring.add(new Month(1,2007),17);
spring.add(new Month(2,2007),39);

TimeSeries lightweight = new TimeSeries("C#教程",Month.class);
lightweight.add(new Month(10,2006),28);
lightweight.add(new Month(11,2006),32);
lightweight.add(new Month(12,2006),11);
lightweight.add(new Month(1,2007),19);
lightweight.add(new Month(2,2007),12);

TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(spring);
dataset.addSeries(lightweight);
return dataset;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值