<%@ page contentType="text/html; charset=big5" %>
<%@ page import="java.awt.Color,
java.awt.Font,
java.awt.GradientPaint,
java.io.*,
org.jfree.data.general.*,
org.jfree.chart.*,
org.jfree.data.time.Day,
org.jfree.data.time.TimeSeries,
org.jfree.data.time.TimeSeriesCollection,
org.jfree.data.time.TimeSeriesDataItem,
org.jfree.data.category.CategoryDataset,
org.jfree.data.category.DefaultCategoryDataset,
org.jfree.data.general.DefaultPieDataset,
org.jfree.chart.ChartFactory,
org.jfree.chart.ChartUtilities,
org.jfree.chart.JFreeChart,
org.jfree.chart.title.TextTitle,
org.jfree.chart.axis.NumberAxis,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.plot.PiePlot"%>
<%
String title = "趨勢分析";
String domain = "月份走勢";
String range = "應收余額";
String subtitleStr = "2003年分析";
TimeSeries ca = new TimeSeries("用友");
for (int i = 1999; i < 2000; i++) {
for (int mon = 0; mon < 12; mon++) {
ca.add(new TimeSeriesDataItem(new Day(1, mon + 1, i),new Double(500 + Math.random() * 100)));
}
}
TimeSeries ibm = new TimeSeries("金碟");
for (int i = 1999; i < 2000; i++) {
for (int mon = 0; mon < 12; mon++) {
//ibm.add(new Month(mon+1,i),new Double(400-Math.random()*100));
ibm.add(new TimeSeriesDataItem(new Day(1, mon + 1, i),new Double(500 + Math.random() * 100)));
}
}
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(ca);
dataset.addSeries(ibm);
//dataset.addSeries(king);
//dataset.addSeries(jpy);
//dataset.addSeries(mav);
JFreeChart chart =
ChartFactory.createTimeSeriesChart(title,domain,range,dataset,true,true,false);
// then customise it a little...
TextTitle subtitle = new TextTitle(subtitleStr, new Font("黑体", Font.BOLD, 12));
chart.addSubtitle(subtitle);
chart.setTitle(new TextTitle(title, new Font("隸書", Font.ITALIC, 15)));
//pie.setSeriesLabelFont(new Font("黑体", Font.BOLD, 15));
chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));
FileOutputStream fos_jpg = null;
String ProgRunPath = request.getSession().getServletContext().getRealPath("");
String ChartImageFileName = "testjfc.jpg";
try
{
System.out.println(ProgRunPath+"/"+ChartImageFileName);
fos_jpg = new FileOutputStream(ProgRunPath+"/"+ChartImageFileName);
org.jfree.chart.ChartUtilities.writeChartAsJPEG(fos_jpg, chart, 1180, 600);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
finally
{
try
{
fos_jpg.close();
}
catch (Exception e)
{}
}
out.println("<img src='"+ChartImageFileName+"' border=0 usemap="+ChartImageFileName+">");
%>
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page import="common.*"%>
<%@ page import="java.text.SimpleDateFormat"%>
<%@ page import="org.jfree.chart.JFreeChart"%>
<%@ page import="org.jfree.chart.ChartFactory"%>
<%@ page import="org.jfree.data.time.*"%>
<%@ page import="org.jfree.data.xy.*"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.data.general.DefaultPieDataset"%>
<%@ page import="java.awt.*"%>
<%@ page import="org.jfree.chart.JFreeChart"%>
<%@ page import="org.jfree.data.xy.*"%>
<%@ page import="org.jfree.chart.plot.*"%>
<%@ page import="org.jfree.ui.*"%>
<%@ page import="org.jfree.chart.ChartRenderingInfo"%>
<%@ page import="org.jfree.chart.renderer.xy.AbstractXYItemRenderer"%>
<%@ page import="org.jfree.chart.renderer.xy.XYLineAndShapeRenderer"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
<%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
<%@ page import="org.jfree.chart.axis.NumberAxis"%>
<%@ page import="org.jfree.chart.encoders.SunPNGEncoderAdapter"%>
<%@ page import="org.jfree.data.xy.XYDataset"%>
<%@ page import="org.jfree.chart.axis.*"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>
<%@ page import="org.jfree.chart.plot.XYPlot"%>
<%@ page import="org.jfree.chart.*"%>
<%@ page import="org.jfree.chart.plot.CategoryPlot"%>
<%@ page import="org.jfree.chart.renderer.category.LineAndShapeRenderer"%>
<%@ page import="org.jfree.chart.axis.CategoryAxis"%>
<%@ page import="org.jfree.chart.title.TextTitle"%>
<%@ page import="org.jfree.chart.labels.*"%>
<%@ page import="org.jfree.chart.urls.*"%>
<%@ page import="org.jfree.chart.renderer.xy.*"%>
<%@ page import = "java.io.PrintWriter" %>
<%@ page contentType="text/html; charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<%response.setContentType("text/html;charset=GB2312");%>
<html>
<script language="javascript">
function overlib(s){
document.all.ChartTip.style.display="block";
top.document.getElementById('ChartTip').innerHTML=s;
obj=event.srcElement;
var rLeft = 0,rTop = 0;
var oParent = obj;
var origXY = document.body;
rTop -= 18;
rLeft += 6;
document.all.ChartTip.style.left=document.body.scrollLeft+event.x;
document.all.ChartTip.style.top=document.body.scrollTop+event.y-20;
}
function nd(s){
document.all.ChartTip.style.display="none";
}
</script>
<body>
<div id="ChartTip" style="position:absolute; background-color:#3399FF; display:none;left:0px;top:1px;">???示</div>
<form name="loginForm" action="test.jsp" method="post">
<%
TimeSeries ts = new TimeSeries("x");
ts.add(new TimeSeriesDataItem(new Day(1, 1, 2006),new Double(2000)));
ts.add(new TimeSeriesDataItem(new Day(1, 2, 2006),new Double(5000)));
ts.add(new TimeSeriesDataItem(new Day(1, 3, 2006),new Double(3080)));
ts.add(new TimeSeriesDataItem(new Day(1, 4, 2006),new Double(7080)));
ts.add(new TimeSeriesDataItem(new Day(1, 5, 2006),new Double(3480)));
ts.add(new TimeSeriesDataItem(new Day(1, 6, 2006),new Double(1480)));
ts.add(new TimeSeriesDataItem(new Day(1, 7, 2006),new Double(2430)));
XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(ts);
JFreeChart chart = ChartFactory.createTimeSeriesChart("??","日期","?值",dataset,true,true,true);
chart.setBackgroundPaint(new GradientPaint(0.0F, 0.0F, new Color(0xef,0xef,0xff), 1000F, 0.0F, new Color(0xef,0xef,0xff)));
chart.setTitle(new TextTitle("??", new Font("黑体", Font.TRUETYPE_FONT, 20)));
Font font=new Font("黑体",Font.TRUETYPE_FONT, 11);
Font valueFont=new Font("Microsoft Sans Serif",Font.TRUETYPE_FONT, 11);
XYPlot xyplot = chart.getXYPlot();
xyplot.setBackgroundPaint(Color.lightGray);
ValueAxis valueAxis=xyplot.getRangeAxis();
valueAxis.setTickLabelFont(valueFont);
valueAxis.setLabelFont(font);
xyplot.setDomainGridlinePaint(Color.white);
xyplot.setRangeGridlinePaint(Color.white);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日", Locale.CHINA);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
sdf,new java.text.DecimalFormat("##0.00"));
TimeSeriesURLGenerator urlg = new TimeSeriesURLGenerator(sdf2, "testChartLine.jsp", "series", "hitDate");
StandardXYItemRenderer renderer = new StandardXYItemRenderer(
StandardXYItemRenderer.LINES + StandardXYItemRenderer.SHAPES,ttg, urlg);
renderer.setShapesFilled(true);
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
xyplot.setRenderer(renderer);
PrintWriter pw=new PrintWriter(out);
String filename = ServletUtilities.saveChartAsPNG(chart, 600, 300, info, session);
ChartUtilities.writeImageMap(pw, filename, info,true);
pw.flush();
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" width=600 height=300 border=0 usemap="#<%= filename %>">
</form>
</body>
</html>