参考网上的例子,用如下代码:
http://www.sentom.net/list.asp?id=10 -> 四.曲线图
做出的曲线图如下:
http://glgq.com/images/testjfc.jpg能否在表中各点上标出其值,类似这样
http://glgq.com/images/line.gif刚学jfc,没有文档,而且它的各版本间差异实在太大,例如网上的例子多是基于0.96的,但到了1.0.0rc,很多类或函数的位置或名称变了。请大侠帮忙看看,能否在各点上标出值?
百分感谢~~!
http://www.sentom.net/list.asp?id=10 -> 四.曲线图
做出的曲线图如下:
http://glgq.com/images/testjfc.jpg能否在表中各点上标出其值,类似这样
http://glgq.com/images/line.gif刚学jfc,没有文档,而且它的各版本间差异实在太大,例如网上的例子多是基于0.96的,但到了1.0.0rc,很多类或函数的位置或名称变了。请大侠帮忙看看,能否在各点上标出值?
百分感谢~~!
------------------------------------------------------------
<%@ page contentType="text/html; charset=GBK" %>
<%@ 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"%>
<%
// create a default chart based on some sample data...
//曲线图标题
String title = "趋势分析";
//曲线图X轴提示
String domain = "月份走势";
//曲线图Y轴提示
String range = "应收余额";
//曲线图自标题
String subtitleStr = "2003财年分析";
//创建时间数据源
//每一个TimeSeries在图上是一条曲线
TimeSeries ca = new TimeSeries("用友");
for (int i = 1999; i < 2005; i++) {
for (int mon = 0; mon < 12; mon++) {
//ca.add(new Month(mon + 1, i), new Double(500 + Math.random() * 100));
//TimeSeriesDataPair是一个时间点的数值体现
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 < 2005; 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)));
}
}TimeSeries king = new TimeSeries("东软");
for (int i = 1999; i < 2005; i++) {
for (int mon = 0; mon < 12; mon++) {
//ibm.add(new Month(mon+1,i),new Double(400-Math.random()*100));
king.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);
//按指定参数保存成图表文件-------(文件名,宽,高,会话ID)
org.jfree.chart.ChartUtilities.writeChartAsJPEG(fos_jpg, chart, 1280, 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+">");
%>