1、JFreeChart组件,用于图形的开发。
1)到http://www.jfree.org/jfreechart/下载JFreeChart的zip文件,解压后得到的目录的lib子目录中的所有jar包拷贝到Web应用的WEB-INF/lib目录下,完成安装。
2)用JFreeChart创建Web图形需要经过3个步骤:
Œ创建一个包含要在Web图形中显示的数据的数据集对象。
创建一个用于作图的JFreeChart对象。
Ž向目标作图。Web图表的作图目标为response.getOutputStream(),即response对象的输出流。
3)创建一个简单的饼形图:
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pageimport="org.jfree.chart.JFreeChart,org.jfree.chart.ChartUtilities,
org.jfree.chart.ChartFactory,org.jfree.data.general.DefaultPieDataset"%>
<%
//第一步:创建一个包含要在Web图形中显示的数据的数据集对象
/*显示数据系列,也可以从数据库读取数据,构建数据集对象*/
Stringinterest[]=newString[]{"文学","相声","编程","体育","音乐","历史"};
/*数据系列对应的值*/
intinterestValue[]={88,73,98,67,56,66};
/*饼形图的数据对象集对象可以是实现了JFfreeChart组件中的PieDataset接口的类的实例,也可以使用JFreeChart组件中已有的已实现了此接口的DefaultPieDataset类,更方便和快捷。*/
DefaultPieDatasetpieDataset=newDefaultPieDataset();
for(inti=0;i<interest.length;i++)
pieDataset.setValue(interest[i],interestValue[i]);
//第二步:创建一个用于作图的JFreeChart对象
/*ChartFactory是一个工厂类,可用于创建JFreeChart对象。这里使用的方法是createPieChart()方法,参数作了简单的设置。还有别的方法。*/
StringtitleString="我的爱好统计图";//图的标题
JFreeChartchart=ChartFactory.createPieChart(titleString,pieDataset,true,true,true);
//第三步:向目标作图。
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,800,500);
%>
4)创建一个简单的条形图:
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pageimport="org.jfree.chart.JFreeChart,org.jfree.chart.ChartUtilities,
org.jfree.chart.ChartFactory,
org.jfree.chart.plot.PlotOrientation,
org.jfree.data.category.DefaultCategoryDataset"%>
<%
/**
*用JFreeChart创建条形图需要用实现了CategoryDataset接口
*或IntervalXYDataset接口的类的实例来作为数据集对象,
*常用JFreeChart中自带的已实现了CategoryDataset接口的DefaultCategoryDataset类。
*/
//第一步:创建一个包含要在Web图形中显示的数据的数据集对象
StringdataName[]=newString[]{"文学","相声","编程","体育","音乐","历史"};//显示数据系列
intdataValueCount[]={88,73,98,67,56,66};//数据系列对应的值
//------创建数据集,并设置值------
DefaultCategoryDatasetcategoryDataset=newDefaultCategoryDataset();
for(inti=0;i<dataName.length;i++)
categoryDataset.addValue(dataValueCount[i],dataName[i],dataName[i]);
//第二步:创建一个用于作图的JFreeChart对象
StringtitleString="我的爱好统计图";//图的标题
/**
*createBarChart方法中的参数依次为图形标题、分类轴标签(默认为横向)、
*数值轴标签(默认为纵向)、数据集、图形显示方向、是否显示图例、是否有工具条、是否有URL
*/
JFreeChartchart=ChartFactory.createBarChart(titleString,"爱好","爱它几分",
categoryDataset,PlotOrientation.VERTICAL,true,true,false);
//第三步:向目标作图。
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);
%>
注:条形图的显示也可以作一些定制性的修改,常用的修改方法:
Œ修改图形的背景颜色:chart.setBackgroundPaint(new Color(#BBBBDD));
修改图形的柱状条颜色。需要使用setCategoryPlot()方法,它非JFreeChart类所有,需要先用JFreeChart类的实例的getCategoryPlot()方法得到一个CategoryPlot对象,再用CategoryPlot对象的getRenderer()方法得到一个BarRenderer对象,用此对象的setSeriesPaint()方法来设置柱状条的颜色,如
CategoryPlotplot=chart.getCategoryPlot();
BarRendererrenderer=(BarRenderer)plot.getRenderer();
renderer.setSeriesPaint(0,Color.red);
renderer.setSeriesPaint(1,Color.yellow);
renderer.setSeriesPaint(2,Color.green);
Ž柱状条的间距。JFreeChart允许修改类型轴的一些设置,如:
§第一条柱状条与数值轴之间的空白间隔距。
§柱状条之间的空白间距。
§最后一条柱状条后空白距离。此三项的设置方法示例:
CategoryPlotplot=chart.getCategoryPlot();
CategoryAxisaxis=plot.getDomainAxis();
axis.setLowerMargin(0.01);//百分这二
axis.setCategoryMargin(0.10);//百分之十
axis.setUpperMargin(0.02);//百分之二
5)创建线形图:
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pageimport="org.jfree.chart.JFreeChart,org.jfree.chart.ChartUtilities,
org.jfree.chart.ChartFactory,
org.jfree.chart.plot.PlotOrientation,
org.jfree.data.category.DefaultCategoryDataset"%>
<%
/***//**
*JFreeChart创建线形图使用的数据集可以是CategoryDataset接口
*或XYDataset的实现类的实例。
*/
//------数据线------
StringdataLine1="物理";
StringdataLine2="化学";
StringdataLine3="数学";
//------数据列------
StringdataCol1="1";
StringdataCol2="2";
StringdataCol3="3";
StringdataCol4="4";
StringdataCol5="5";
StringdataCol6="6";
//------创建数据集,并设置值------
DefaultCategoryDatasetcategoryDataset=newDefaultCategoryDataset();
categoryDataset.addValue(60,dataLine1,dataCol1);
categoryDataset.addValue(70,dataLine1,dataCol2);
categoryDataset.addValue(83,dataLine1,dataCol3);
categoryDataset.addValue(90,dataLine1,dataCol4);
categoryDataset.addValue(92,dataLine1,dataCol5);
categoryDataset.addValue(85,dataLine1,dataCol6);
categoryDataset.addValue(63,dataLine2,dataCol1);
categoryDataset.addValue(45,dataLine2,dataCol2);
categoryDataset.addValue(67,dataLine2,dataCol3);
categoryDataset.addValue(76,dataLine2,dataCol4);
categoryDataset.addValue(90,dataLine2,dataCol5);
categoryDataset.addValue(87,dataLine2,dataCol6);
categoryDataset.addValue(50,dataLine3,dataCol1);
categoryDataset.addValue(76,dataLine3,dataCol2);
categoryDataset.addValue(84,dataLine3,dataCol3);
categoryDataset.addValue(96,dataLine3,dataCol4);
categoryDataset.addValue(88,dataLine3,dataCol5);
categoryDataset.addValue(80,dataLine3,dataCol6);
//------创建线图------
StringtitleString="XXXXXX学生成绩线图";//图的标题
JFreeChartchart=ChartFactory.createLineChart(titleString,"第几次考试","成绩",
categoryDataset,PlotOrientation.VERTICAL,true,true,false);
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300);
%>
6)JFreeChart中常用的几个包:
Œorg.jfree.chart:这个包包含了JFreeChart最为重要的也是为常用的几个类和接口。
org.jfree.chart.data:数据集相关的接口和类。
Žorg.jfree.chart.plot:绘图相关的类和接口。
org.jfree.chart.data.general:常用的数据集相关的接口和类。
7)开发中最为常用的几个类或接口:
ŒJFreeChart类。这个类在org.jfree.chart包中,用于协调整个画图的处理过程。生成这个类通常使用ChartFactory类。它的主要方法有:public void draw(Graphics2D g2,Rectang2D area)此方法用于在图形设备的特定区域画图。参数g2代表一个图形,area为包容这个图形的矩形容器。java中提供的图形设备有:屏幕、打印机、图形缓冲区。JFreeChart绘图是由不同的java.awt.Graphics2D包中的抽象类实现的,只有利用它们,JFreeChart才能向不同的图形设备输出图形。
ChartFactory类。这是一个工厂类,即org.jfree.chart.ChartFactory,它提供了一些比较方便的创建图形对象的方法。此类常用的方法有:public static JFreeChart createPieChart(String title,PieDataset dataset,boolean legend,boolean tooltips,boolean urls),此方法用于创建一个标准的饼图。title是标题;dataset是创建饼形图所使用的特定数据集(可为空);legend表示是否为一个图例;tooltips用于配置图形是否生成提示信息;urls配置图形是否生成URL。public static JFreeChart createBarChart(String title,String categoryAxisLabel,String tvalueAxisLabbel,CategoryDataset dataset,PlotOrientation orientation,boolean legend,boolean tooltips,boolean urls)此方法用于生成条形图。public static JFreeChart createLineChart(String title,String categoryAxisLabel,String valueAxisLabel,CategoryDataset dataset,PlotOrientation orientation,boolean legend,boolean tooltips,boolean urls),其中categoryAxisLabel指出横向轴(分类轴)的提示字符串,valueAxisLabel指出横向轴(值轴)的提示字符串,orientation指出条形图为横向还是竖向。
ŽChartUtilities类。它在org.jfree.chart包中,能过可从chart对象生成PNG格式或JPEG格式的图片,也可生成带有点击范围的HTML图片,这些方法都是表态是静态的。
writeChartAsPNG(java.io.OutputStreamout, JFreeChartchart, intwidth, intheight)
throws java.io.IOException
writeChartAsJPEG(java.io.OutputStreamout, JFreeChartchart, intwidth, intheight)
throws java.io.IOException
writeChartAsJPEG(java.io.OutputStreamout, JFreeChartchart, intwidth, intheight, ChartRenderingInfoinfo)
throws java.io.IOException
PlotOrientaion类,它在包中,用于表示图形的显示方向,主要有两属性:public static final PlotOrientation HORIZONTAL(横向)与public static final PlotOrientation VERTICAL(纵向)。
DefaultCategoryDataset接口,它在org.jfree.data.category包中,这是一个默认情况下的使用的分类数据集接口。构造函数:public DefaultCategoryDataset()生成个空的数据集。
addValue(doublevalue, java.lang.ComparablerowKey, java.lang.ComparablecolumnKey)
setValue(doublevalue, java.lang.ComparablerowKey, java.lang.ComparablecolumnKey)
两者功能相同,向数据中增加值,如果这个数据已存在则覆盖它。
分享到:
相关推荐
JFreeChart详细使用教程
JFreeChart使用详细教程
jfreeChart图解详细开发步骤jfreeChart图解详细开发步骤jfreeChart图解详细开发步骤jfreeChart图解详细开发步骤jfreeChart图解详细开发步骤jfreeChart图解详细开发步骤jfreeChart图解详细开发步骤jfreeChart图解详细...
JFreeChart的使用,需要导入的2个jar文件: jcommon-1.0.23.jar和jfreechart-1.0.19.jar。 可以去官网下载:http://sourceforge.net/projects/jfreechart/files/ 上传以作后续使用时备份.
jfreechart+applet三维图形实例jfreechart+applet三维图形实例jfreechart+applet三维图形实例
jfreechart-1.5.2.jar,jfreechart|jfreechart
JFreeChart-1.0.13原文件含jar包。 1、JFreeChart生成图片路径教程 2、JFreeChart使用教程(含...3、JFreeChart使用详细教程 4、JFreeChart学习--jsp柱状图教程 5、JFreeChart乱码解决方法 等等 包括许多优秀案例
JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、...本文档将简要介绍小JFreeChart的使用。
介绍Eclipse下JfreeChart的应用
JFreeChart使用大全
JfreeChart报表的常用方法介绍,类和方法都是用中文介绍,还算清晰明了!
JFreeChart 指南 JFreeChart Guide JFreeChart 示例 JFreeChart demo
JFreeChart使用教程(中文)....................
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够 用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...
JFreeChart使用心得.pdfJFreeChart使用心得.pdf
绝对物超所值! JFreeChart-1.0.13原文件含jar包。...3、JFreeChart使用详细教程 4、JFreeChart学习--jsp柱状图教程 5、JFreeChart乱码解决方法 等等 包括csdn上得优秀案例 ------20+M的数据不要别后悔哦