TimeSeriesDemo.java
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.time.TimeSeriesDataItem;
import org.jfree.data.xy.XYDataset;
/**
* @author neitbe
*/
public class TimeSeriesDemo
{
//private static Log log = LogFactory.getLog(TimeSeriesDemo.class);
//曲线图标题
private String title = "趋势分析";
//曲线图X轴提示
private String domain = "月份走势";
//曲线图Y轴提示
private String range = "应收余额";
//曲线图自标题
private String subtitleStr = "2005财年分析";
//创建时间数据源
//每一个TimeSeries在图上是一条曲线
private TimeSeries yongyou = new TimeSeries("用友");
private TimeSeries jindie = new TimeSeries("金碟");
private TimeSeries dongruan = new TimeSeries("东软");
//时间曲线数据集合
private static TimeSeriesCollection dataset = new TimeSeriesCollection();
private void setDataset()
{
dataset.removeAllSeries(); //在javaBean中使用此类这个很重要,不然会不停的加入新的TimeSeries;
dataset.addSeries(this.yongyou);
dataset.addSeries(this.jindie);
dataset.addSeries(this.dongruan);
}
private void setDongruan()
{
this.dongruan.clear(); //很重要,不然会报错
/**
* 报错
* org.apache.jasper.JasperException: You are attempting to add an observation for the time period
* 这里是在类属性里声明TimeSeries才用到的
*/
for(int i = 1999; i < 2005; i++)
{
for(int mon = 0; mon < 12; mon++)
{
this.dongruan.add(new TimeSeriesDataItem(new Day(1,mon+1,i),new Double(300 - Math.random()*100)));
}
}
}
private void setJindie()
{
this.jindie.clear(); //很重要,不然会报错
for(int i = 1999; i < 2005; i++)
{
for(int mon = 0; mon < 12; mon++)
{
this.jindie.add(new TimeSeriesDataItem(new Day(1,mon+1,i),new Double(400 - Math.random()*100)));
}
}
}
private void setYongyou()
{
this.yongyou.clear(); //很重要,不然会报错
for(int i = 1999; i < 2005; i++)
{
for(int mon = 0; mon < 12; mon++)
{
this.yongyou.add(new TimeSeriesDataItem(new Day(1,mon+1,i),new Double(500 - Math.random()*100)));
}
}
}
private TimeSeriesCollection getDataset()
{
this.setDongruan();
this.setJindie();
this.setYongyou();
this.setDataset();
return dataset;
}
public String drawPic(HttpSession session)
{
String fileName = null;
JFreeChart chart = ChartFactory.createTimeSeriesChart(title,domain,range,getDataset(),true,true,false);
TextTitle subTitle = new TextTitle(subtitleStr,new Font("黑体",Font.BOLD,12));
chart.addSubtitle(subTitle);
chart.setTitle(new TextTitle(title,new Font("隶书",Font.ITALIC,15)));
chart.setBorderPaint(new GradientPaint(0,0,Color.white,0,1000,Color.blue));
//String fileName = "D:\\fuit2.jpeg";
try
{
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
//log.debug("准备创建图片……");
fileName = ServletUtilities.saveChartAsJPEG(chart,600,600,info,session);
//log.debug("图片创建成功!");
} catch (IOException e)
{
//log.error("IO异常:",e);
}
//log.debug("返回的文件名为:" + fileName);
return fileName;
}
public static void main(String[] args)
{
// TimeSeriesDemo timeSeriesDemo = new TimeSeriesDemo();
// System.out.println(timeSeriesDemo.drawPic(null));
}
}
---------------------------------------------------------------------------------------------------------------------------
TimeSeriesDemo.jsp
<%@ page language="java" contentType="text/html; charset=UTF8" pageEncoding="UTF8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<jsp:useBean id="timeSeries" scope="session" class="jfreechart.TimeSeriesDemo"/>
</head>
<body>
<%
String fileName = timeSeries.drawPic(request.getSession());
String graphURL = request.getContextPath()+"/servlet/DisplayChart?filename=" + fileName;
%>
<img src="<%= graphURL %>" width="900" height="300" border="1"/>
</body>
</html>
----------------------------------------------------------------------------------------------------------------------------------
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee
"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
">
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
</web-app>
分享到:
相关推荐
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...
JFreeChart的简单应用,画曲线图,多条曲线,在数据点显示数据值。包含所需的jar文件。
最近刚小学了一下jfreechart,画了个用jfreechart连接oracle数据库的曲线图,比较麻烦!
java 调用jfreechart 实现柱状图、曲线图、饼图,非常简单灵活!超好看!
jfreechart 曲线图 3d饼图 3d柱状图 代码,以及生成的图样,还有需要的包也一并上传,希望对大家有用处
flex jfreechart生成 饼状图 flex jfreechart生成 柱状图 flex jfreechart生成 曲线图 flex jfreechart生成 曲线图
java中关于JFreeChart实现实时曲线图
java+jfreechart+struts 生成曲线图 java+jfreechart+struts 生成曲线图 java jfreechart 曲线图 java jfreechart 曲线图 java jfreechart 曲线图 谁需要完整项目可以去http://download.csdn.net/source/2665347
利用jFreeChart做曲线图、饼状图、柱状图 其中也包含如何引用jFreeChart的jar包
jfreechart 曲线图,饼图,柱状图等样例程序
详细的描述了JfreeChart_sql实现时间曲线图的操作方法!
该程序为main 函数,定义了三个方法,分别是jfreechart三种实现折线图的类型,返回的是一个chart 本程序是把图片保存到本地,当然实际应用中,只要在程序和页面中做相关配置即可以使用。 因为图片带点透明,所以...
jfreechat 曲线图 饼图 柱状图 免费图标 图表
JSP+JFreeChart 实现曲线图、柱形图
这是一个struts2+jfreechart的完整源码程序。...运行DemoTest/RealTimeChart可看到即时曲线图示例。本来这些应资源共享,可下载别人好东西时需要积分,所以设置为1分。希望大家可以互相交流java技术!
主要为大家详细介绍了JFreeChart简单实现光滑曲线的绘制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
applet_+_JfreeChart_实现曲线走势图
采用struts2.0与jfreechart技术制作柱状图 圆饼图 曲线图 的几个实例
时序图横坐标标尺只能显示奇数天
虽然现在JS做报表和图形展示已经非常普遍和漂亮了,但是不能忽略有jfreechart 这样一种东西! 这些翻阅资料,在看以前写的示例时发现了关于jfreechart 的简单示例,不管怎样发上来分享一下!