日期:2014-05-18 浏览次数:20759 次
折线图,有个地方可以设置的。好久没弄过这个了,找了下以前的代码,就一个生成时序图的例子了,要睡觉了,懒得找了
你可以把我的例子改下,一样,时序图其实就折线图,只不过横坐标刻度是时间而已,你可以把刻度设置为年就可以了
public class CopyOfDataToPictrueServiceImp1 implements DataToPictrueService {
/**
* 创建JFreeChart TimeXY Chart(折线图)
*/
public static void main(String[] args) {
Long time1 = new java.util.GregorianCalendar().getTimeInMillis();
//创建XYDataset对象(准备数据)
XYDataset dataset = createXYDataset();
//根据Dataset 生成JFreeChart对象,以及做相应的设置
JFreeChart freeChart = createChart(dataset,"监测点日电压曲线图","时间","电压百分比");
//将JFreeChart对象输出到文件,Servlet输出流等
saveAsFile(freeChart, "D:\\lineXY.png", 700,800);
System.out.println("生成完毕");
Long time2 = new java.util.GregorianCalendar().getTimeInMillis();
System.out.println("生成所需的时间:" + (time2 - time1));
}
// 保存为文件
public static void saveAsFile(JFreeChart chart, String outputPath,
int weight, int height) {
FileOutputStream out = null;
try {
File outFile = new File(outputPath);
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdirs();
}
out = new FileOutputStream(outputPath);
// 保存为PNG
ChartUtilities.writeChartAsPNG(out, chart, 500, 300);
// 保存为JPEG
// ChartUtilities.writeChartAsJPEG(out, chart, 500, 400);
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
// do nothing
}
}
}
}
// 根据XYDataset创建JFreeChart对象
public static JFreeChart createChart(XYDataset dataset,
String titleName,String XName,String YName) {
// 创建JFreeChart对象:ChartFactory.createXYLineChart
JFreeChart jfreechart = ChartFactory.createXYLineChart(
titleName, // 标题
XName, // categoryAxisLabel (category轴,横轴,X轴标签)
YName, // valueAxisLabel(value轴,纵轴,Y轴的标签)
dataset, // XYDataset对象(准备数据)
PlotOrientation.VERTICAL, //直方图的方向 PlotOrientation.HORIZONTAL//水平方向
true, //定义图表是否包含图例
true, //定义图表是否包含提示
true); //定义图