




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灭鼠灭蟑螂培训课件
- 2025贵州省水利投资(集团)有限责任公司招聘84人考前自测高频考点模拟试题及答案详解(有一套)
- 服务与沟通培训课件
- 2025-2030工业激光器核心光学元件市场格局与技术创新方向报告
- 2025-2030工业气体产业市场现状及投资前景评估研究报告
- 2025-2030工业机器人核心零部件市场供需分析与投资风险评估报告
- 2025安徽芜湖经济技术开发区公办幼儿园招聘26人考前自测高频考点模拟试题带答案详解
- 2025-2030工业机器人应用场景拓展与市场竞争态势评估分析报告
- 2025-2030工业机器人产业链发展趋势及资本运作模式分析报告
- 2025-2030工业旅游模式对免漆门品牌传播效果评估报告
- 2024抖音护肤行业白皮书
- 电力工程施工进度及安全保障措施
- GB/T 19973.2-2025医疗产品灭菌微生物学方法第2部分:用于灭菌过程的定义、确认和维护的无菌试验
- 装修合同意向协议书
- 商铺转租赁合同范本
- 《足球裁判员培训》课件
- 浴室工程施工组织设计方案
- 2024年秋九年级化学上册 第3单元 物质构成的奥秘 课题3 元素 第1课时 物质是由元素组成的说课稿 (新版)新人教版
- 安全隐患整改回复单
- 微商基础培训课件
- ISO9001:2024版质量手册资料
评论
0/150
提交评论