JFreeChart使用心得与例子.docx_第1页
JFreeChart使用心得与例子.docx_第2页
JFreeChart使用心得与例子.docx_第3页
JFreeChart使用心得与例子.docx_第4页
JFreeChart使用心得与例子.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 jsp JFreeChart使用心得与例子一、JFreeChart的介绍与获取 JFreeChart开发包是一个开源的Java图形开发包,它从柱形图,饼形图,到雷达图,蜡烛图等等无所不包,可以在c/s,b/s,甚至是实时环境都能一显身手。当前的JFreeChart的最新版本为jfreechart-1.0.11.zip。可以到/jfreechart/index.html找到二、JFreeChart的基本使用不论创建的是什么图,JFreeChart都遵循以下的这个使用步骤:1、建立Dataset。所有的数据都存放在Dataset中的。(创建一个数据源(dataset)来包含将要在图形中显示的数据)2、建立JFreeChart。将dataset中的数据导入到JFreeChart中。(创建一个 JFreeChart 对象来代表要显示的图形 )3、设置JFreeChart的显示属性。这一步可以省略,使用默认的JFreeChart显示属性。3、渲染图表。即生成图片。4、页面图片显示。重要的类和接口:org.jfree.data.general.Dataset 所有数据源类都要实现的接口org.jfree.chart.ChartFactory 由它来产生 JFreeChart 对象org.jfree.chart.JFreeChart 所有对图形的调整都是通过它噢!org.jfree.chart.plot.Plot 通过JFreeChart 对象获得它,然后再通过它对图形外部部分(例:坐标轴)调整注意:它有很多子类,一般都下涉及到它的子类!org.jfree.chart.renderer.AbstractRenderer 通过JFreeChart 对象获得它,然后再通过它对图形内部部分(例:折线的类型)调整。同样,针对不同类型的报表图,它有着不同的子类实现!在下面我们简称它为 Renderer三、JFreeChart使用的具体例子在web应用中的例子package com.lzk.bean;import java.awt.Color;import java.awt.Font;import java.io.IOException;import java.io.PrintWriter;import java.text.NumberFormat;import java.text.SimpleDateFormat;import javax.servlet.http.HttpSession;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartRenderingInfo;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.DateAxis;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.entity.StandardEntityCollection;import org.jfree.chart.labels.StandardXYToolTipGenerator;import org.jfree.chart.plot.XYPlot;import org.jfree.chart.renderer.xy.XYItemRenderer;import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;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.xy.XYDataset;import org.jfree.ui.RectangleInsets;/* 曲线图的绘制*/public class LineXYChart/* 返回生成图片的文件名* param session* param pw* return 生成图片的文件名*/public String getLineXYChart(HttpSession session, PrintWriter pw)XYDataset dataset = this.createDateSet();/建立数据集String fileName = null;/建立JFreeChartJFreeChart chart = ChartFactory.createTimeSeriesChart(JFreeChart时间曲线序列图, / titleDate, / x-axis labelPrice, / y-axis labeldataset, / datatrue, / create legend?true, / generate tooltips?false / generate URLs?);/设置JFreeChart的显示属性,对图形外部部分进行调整chart.setBackgroundPaint(Color.red);/设置曲线图背景色/设置字体大小,形状Font font = new Font(宋体, Font.BOLD, 16);TextTitle title = new TextTitle(JFreeChart时间曲线序列图, font);chart.setTitle(title);/副标题TextTitle subtitle =new TextTitle(副标题, new Font(黑体, Font.BOLD, 12);chart.addSubtitle(subtitle);chart.setTitle(title); /标题/设置图示标题字符/TimeSeries s1 = new TimeSeries(历史曲线, Day.class);该中文字符LegendTitle legengTitle = chart.getLegend();legengTitle.setItemFont(font);XYPlot plot = (XYPlot) chart.getPlot();/获取图形的画布plot.setBackgroundPaint(Color.lightGray);/设置网格背景色plot.setDomainGridlinePaint(Color.green);/设置网格竖线(Domain轴)颜色plot.setRangeGridlinePaint(Color.white);/设置网格横线颜色plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0);/设置曲线图与xy轴的距离plot.setDomainCrosshairVisible(true);plot.setRangeCrosshairVisible(true);XYItemRenderer r = plot.getRenderer();if (r instanceof XYLineAndShapeRenderer)XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;renderer.setBaseShapesVisible(true);renderer.setBaseShapesFilled(true);renderer.setShapesVisible(true);/设置曲线是否显示数据点/设置Y轴NumberAxis numAxis = (NumberAxis) plot.getRangeAxis();NumberFormat numFormater = NumberFormat.getNumberInstance();numFormater.setMinimumFractionDigits(2);numAxis.setNumberFormatOverride(numFormater);/设置提示信息StandardXYToolTipGenerator tipGenerator = new StandardXYToolTipGenerator(历史信息1 16:00,2), new SimpleDateFormat(MM-dd),numFormater);r.setToolTipGenerator(tipGenerator);/设置X轴(日期轴)DateAxis axis = (DateAxis) plot.getDomainAxis();axis.setDateFormatOverride(new SimpleDateFormat(MM-dd);ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection();tryfileName = ServletUtilities.saveChartAsPNG(chart, 500, 300, info,session);/生成图片/ Write the image map to the PrintWriterChartUtilities.writeImageMap(pw, fileName, info, false);catch (IOException e)e.printStackTrace();pw.flush();return fileName;/返回生成图片的文件名/* 建立生成图形所需的数据集* return 返回数据集*/private XYDataset createDateSet()TimeSeriesCollection dataset = new TimeSeriesCollection();/时间曲线数据集合TimeSeries s1 = new TimeSeries(历史曲线, Day.class);/创建时间数据源,每一个/TimeSeries在图上是一条曲线/s1.add(new Day(day,month,year),value),添加数据点信息s1.add(new Day(1, 2, 2006), 123.51);s1.add(new Day(2, 2, 2006), 122.1);s1.add(new Day(3, 2, 2006), 120.86);s1.add(new Day(4, 2, 2006), 122.50);s1.add(new Day(5, 2, 2006), 123.12);s1.add(new Day(6, 2, 2006), 123.9);s1.add(new Day(7, 2, 2006), 124.47);s1.add(new Day(8, 2, 2006), 124.08);s1.add(new Day(9, 2, 2006), 123.55);s1.add(new Day(10, 2, 2006), 122.53);dataset.addSeries(s1);da

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论