欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    JFreeChart使用教程含下载安装.docx

    • 资源ID:1463898       资源大小:126.54KB        全文页数:23页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JFreeChart使用教程含下载安装.docx

    用JFreeChartk加JSP报表的用户体验JFreeChart是一组功能强大、敏捷易用的Java绘图API,运用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在SWing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领读者学习在JFreeChart中饼图、柱状图和曲线图的进阶应用,来达到娴熟运用JFreeChart的目的C一下就与环境IM1 .下栽JFreeChartJFreeChart是开放源代码的免费软件,但是它的支持文档须要付费才能得到。其下毂地址为:,当前最新版本为。笔者下战的是用新版。说明:1)source书目:为jfreechart的源码书目;2) Iib书目:为包书目,我们须要关注的包为、gnujaxp.jar和这三个包;3)根书目卜的是例子程序,大家双击后可看到其中有许多例子的运行结果。2 .环境配置笔者的开发环境如下:JDK:1.5MyEclipse:5.1.1GATomcat:为了后续的“用JFreeChart创建必于Web的图表”的一个例子的展示,我们在MyECIiPSe中创建一个名为jfreechart的Web工程。将卜.栽的下Hb书目下的jar包指贝到WCbROOtWEB-INFlib书目下。另外还须要在Web.xml文件中增加如卜.配置:<se11det><servlet-name>Disp)ayChart<serv)et-name><servlet-class><servlet-class><servlet><se11det-mapping><servlet-name>DisplayChart</SerVIet-name><url-pattern>DisplayChart<url-pattern><servlet-mapping>二柱状图在WebRoot书目下建立bar书目,用来存放柱状图的各个例子。泞先在该书目下建立一个Sample1.jsp文件,让我们来看一个简洁的柱状图的例子,修改后的SamPIe1.jSP的内容如N所示:v%pageContentTyPe="text/html;CharSet=GBK"%>v%pageContentType="text/htmljcharset=GBK"%><%pageimport="org.jfree.chart.ChartFactorjf,org.jfree.chart.JFreeChart,org.jfree.chart.plot.PlotOrientation,org.jfree.chart.Sendet.ServletUtilities,org.jfree.data.category.CategorjfDataset,org.jfree.data.general.DatasetUtilities"%><%:doublel11data-newdouble11<1310,1720,(1130,440; EStringlrowKeys="猪肉牛肉”,“鸡肉","鱼肉";CFStringIlColumnKeys="";CategoryDatasetdataset=DatasetUtilities-CreateCategoryDataset(rowKeys,columnKcys,data);JFreeChartchart=ChartFaCtOry.createBarChart3D("广州肉类销量统计图","肉类",”销GT,dataset,PlotOrientation.VERTICA1.,true,false,不同肉类,只要将上例稍作修改即可。例如要在图中表示广州、深圳、东荒、佛山四个城市的四个肉类的借售状况,只须要将如卜三句梢做修改:double11data»newdouble11«1310,720,11130f1440» EStringfrowKeys=“猪肉",”牛肉T鸡肉","鱼肉';StringQColumnKeys«f例如修改成:double1111data=newdouble11l1310,1220,1110,1000,720,700,680,640),1130,1020,980,800),1440,400,360,300); EStringdrowKeys7猪肉","牛肉T鸡肉","鱼肉";StringdCOlumnKeys="广州","深圳","东莞","佛山小在运行该iSD值面.可看到如下界面:肉类一垃统计图在上述儿例中,在某个柱子上都没有显示相应的数值,下面让我们为每个柱子都加上它的数值,我们新建一个SamPIe4.jsp页面,其内容如下:<%pageCOntentTyPe="text/html;CharSet=GBK"%><%pageimporta.category.CategoryDataset,org.jfree.data.general.DatasetUtilities,org.jfree.chart.plot.*,org.jfree.chart.labels.*,org.jfree.chart.renderer.category.BarRenderer3D,java.awt.*,org.jfree.ui.*,org.jfree.chart.axis.Axis1.ocation"%><%7double11data=newdouble11«1310,1220,1110,1000,i720,700,680,640,iU130,1020,980,800,44O,400,360,300; EStringOrowKeys="猪肉"牛肉*"鸡肉","鱼肉"; EString11ColumnKeys="广州","深圳"J冻莞","佛山";CategoryDatasetdataset=DatasetUtilities-CreateCategoryDataset(rowKeys,ColumnKeys,data);JFreeChartchart=ChartFaCtory.createBarChart3D("肉类储出统计图",“肉类",“销量",dataset,PlotOrientation-VERTICA1.,true,true,false);CategoryPlotplot=chart.getCategoryPlot();/设置网格背景颜色plot.SetBackgroundPaint(ColorAvhite);/设置网格签线颜色plot.SetDomainGridlincPaint(Color-Pink);设置网格横线颜色plot.SetRangeGridlinePaint(Color-Pink);/显示每个柱的数值,并修改该数值的字体属性BarRendercr3Drenderer=newBarRcndererSDO;renderer.setBaseItem1.abelGenerator(newStandardCategoryItem1.abelGenerator();renderer.setBaseltem1.abelsVisible(true);/默认的数字显示在柱子中,通过如下两句可调整数字的显示留意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没行显示出来的问题renderer.setBasePositiveItem1.abelPosition(newItem1.abelPosition(Itcm1.abclAnchor.OUTSIDE12,TextAnchor.BASE1.INE,1.EFT);renderer.setItem1.abelAnchorOffset(lOD);/设置每个地区所包含的平行柱的之间距离/renderer.SetItemMargin(0.3);plot.setRenderer(rendercr);/设置地区、销成的显示位置/将下方的“肉类”放到上方plot.setDomainAxislx)cation(Axis1.ocation.TOP_OR_RIGHT);/将默认放在左边的“销盘”放到右方plot.setRangeAxis1.ocation(Axis1.ocation.BOTTOM_OR_RIGHT);String=ServletUtilities.saveChartAsPNG(chart,700,400,nul1,session);StringgraphUR1.=request.getContextPath()+,/DisplayChart?"+;%><imgsrc="<%=graphUR1.%>"width=700hcight=400border=0usemap="#<%»%>">运行效果如下所示:肉类箱依统计图nu东凌>留意:jfreechart的许多版本不兼容,请大家在运行此例时确认下毂了对应的版本。三.饼图在WebRoot书目卜.建立名为pie的子书目,用来存放本教程中饼图的实例jsp页面。下面让我们来看一个简洁的二维饼图。首先在PiC书目下建立一个名为sample1.jsp的页面。在JFreeChart中,与饼图绘制亲密相关的类如下:1) PiePlot饼图绘制类,可以用来设置饼图的相关属性.例如:PicPlotpieplot=(PicPlot)jfreechart.getPlot();pieplot.set1.abelFont(newFontCSansSerif",0,12);pieplot.SetNoDataMcssageCNodataavailable");pieplot.setCircular(false);picplot.set1.abelGap(0.02D);2) DefaultPicDataset默认的饼图数据集类,用来存储饼图显示的相关数据信息。例如:DefaultPieDatasetdataset=newDefaultPieDatasetO;dataset.setValue("11t1,newDouble(0.2D);dataset.setValue("体育",newDouble(0.2D);dataset.setVahe("音乐",newDouble(0.2D);dataset.setValue(''其余成果",newDouble(0.4D);3) ChartFactory可利用该制图工厂类CreatePieChart来创建一个饼图的JFrCeChart对象,例如:JFreeChartjfreechart=ChartFactory.CreatePieChartCtJf图示例",dataset,true,true,false);下面让我们看一个简洁的例子,修改SamPIe1.jsp的内容如下:<%pagecontentType="texthtmljcharset=GBK"%>v%pageimport="org.jfree.chart.*,org.jfree.chart.plot.PiePlotforg.jfree.data.general.DefaultPieDataset,org.jfree.chart.Servlet.ServletUtilities,java.awt.*"%><%/设置数据集DefaultPieDatasetdataset=newDefaultPieDatasetO;dataset.SetVaIUe("初中高级程序员”,0.55);dataset.setVahe("项目经理",0.1);dataset.setValue("系统分析师0.1);dataset.setVahe("软件架构师",0.1);dataset.setValue("其他”,0.2);通过工厂类生成JFreeChart对象JFreeChartchart=ChartFactory.createPieChart3D("IT行业职业分布图”,dataset,true,false,false);PicPlotpieplot=(PiePlot)chart.getPlotO;pieplot.set1.abelFont(newFOntr宋体",O,12);/没有数据的时候显示的内容PiePlOtSetNoDataMeSSager多数据显示");pieplot.setCircular(falsc);pieplot.Set1.abelGapfO.02D);String=ServletUtilities.saveChartAsPNG(chart,500,300,nul1,session);StringgraphUR1.=request.getContextPath()+'/DisplayChart?%><imgsrc="<%=graphUR1.%>,width=500height=300border=OUSemaP="#<%=%>">可以看出,饼图的绘制与柱状图的绘制类似,该例的运行效果如下:IT行业职业分布图有时候我们还想知道某块所占的详细分值,或者须要突出显示某一块。这时候须要对上例进行部分修改:datasetsetValue("其他”,0.2);后的那段改成:/通过工厂类生成JFreeChart对象JFreeChartchart=ChartFactory.createPieChart3D("IT行业职业分布图”,dataset,true,false,false);PiePlotpieplot三(PiePlot)chart.getPlotQ;pieplot.set1.abelFont(ncwFOntr宋体",,12);/没有数据的时候显示的内容org.jfree.chart.plot.PicPlot3D"%><%/设置数据集DefaultPieDatasetdataset=newDefaultPieDatasetO;dataset.setVahe("初中高级程序员",0.55);dataset.setValue("项目经理",0.1);dataset.setValue("系统分析师",0.1);dataset.setVahe("软件架,构师",0.1);dataset.setValue("其他",0.2);通过工厂类生成JFreeChart对象JFreeChartchart=ChartFactory.createPicChart3D("IT行业职业分布图”,dataset,true,true,false);/获得3D的水晶饼图对象PiePlot3Dpieplot3d=(PiePlot3D)chart.getPlot();/设置起先角度pieplot3d.setStartAngle(l50D);/设置方向为''顺时针方向“pieplot3d.setDirection(Rotation.C1.OCKWISE);设置透亮度,05F为半透亮,1为不透亮,。为全透亮pieplot3d.SetForegroundAlpha(O.SF);PiePlOt3d.setNoDataMcssage("多数据品示'');String=ServletUtilities.saveChartAsPNG(chart,500,300,nul1,session);StringgraphUR1.=request.getContextPath()+,/DisplayChart?"+;%><imgsrc="<%=graphUR1.%>"width=500hcight=300border=0usemap="#<%»%>">利用SetForegroUndAIPhao方法可以设置3D饼图的透亮度,利用SetStartAnglc()可以设置其起先角度,利用SetDirCCtiOnO方法可以设置其方向。该例的运行效果如5图所示:IT行业职业分布黑PJ,l,WFttJllrt,系统分析师枇件饮构Ut>K他四.曲线图接着我们来介绍曲线图的运用。在笔者日常的开发工作中,曲线图用得最多,它可以用来绘制趋势图、统计分析等。首先我们在WebRoot下建立一个IinC书目,用来存放曲线图实例的jsp页面。我们在该书目下建立SamPle1.jSP页面来做一个简洁的曲线图的例子。在起先编码前,让我们来看看与画曲线图亲密相关的几个类:1) TimeseriesCollection曲线数据的集合。2) TimeSeries曲线信息序列。3) ChartFactory可以利用该类的CreateTimeSeriesChart方法来创建曲线的JFreeChart对象C在下例中,我们显示阿蜜果的blog在2007年度各月份的访问讨状况,修改后的samplel.jsp的内容如F:v%pagecontentType三"texthtmljcharset=GBK"%>v%pageimport="org.jfree.chart.ChartFactory,OrgjfreexhartJFreeChart,org.jfree.chart.Sendet.ServlctUtilities,org.jfree.chart.title.TcxtTitle,org.jfree.data.time.TimeSeries,e.Month,org.jfree.data.time.TimeSeriesCollection,java.awt.Font"%><%/访问量统计时间线TimeSeriestimeSeries=newTimeSeries("阿蜜果blog访问以统计",Month.class);/时间曲线数据集合TimesericsCollectionIincDatasct=newTimeSeriesCollection();构造数据集合timcSerics.add(newMonth(l,2007),11200);timeSeries.add(newMonth(2,2007),9000);timeSeries.addncwMonth(3,2007),6200);timeSeries.add(newMonth(4,2007),8200);timeSeries.add(ncwMonth(5,2007),8200);timeSeries.add(newMonth(6,2007),12200);timeSeries.add(ncwMonth(7,2007),13200);timeSeries.add(newMonth(8,2007),8300);timeSeries.addnewMonth(9,2007),12400);timeSeries.add(newMonth(10,2007),12500);timcScries.add(ncwMonth(l1,2007),13600);timeSeries.add(newMonth(12,2007),12500);IincDataset.addScries(timcSeries);JFreeChartchart=ChartFaCtory.CreateTimeSeriesChartC'访问量统计时间线"月份","访问量",IineDataset,true,true,true);设置子标题TextTitlesubtitle=newTcxtTitle("20074F度',newFOnt("黑体',Font.BO1.D,12);chart.addSubtitle(subtitle);设置主标题chart.setTitlc(newTeXtTitIe("阿蜜果blog访问依统计",newFont("隶书",FontJTA1.IC,15);chart.setAntiAlias(true);String=ServletUtilities.saveChartAsPNG(chart,500,300,nul1,session);StringgraphUR1.=request.getContextPath()+,/DisplayChart?"+;%><imgsrc="<%=graphUR1.%>',width=500height=300border=0USemaP="#<%n%>,1>运行后的曲线效果如星期委藐”计有时我们须要显示各数据点与其数值,这是我们须要对上例进行一点改动,在JFreeChartchart=ChartFactory.CreateTimeSeriesChart后,TextTitlesubtitle=newTextTitle前加上如下的代码:XYPlotplot=(XYPlot)chart.getPlot();XY1.ineAndShapeRendererXylineandshaperenderer=(XY1.ineAndShapeRenderer)plot.getRenderer();/设置网格背景颜色plot.SetBackgroundPaint(ColorAvhite);/设置网格整线颜色plot.SetDomainGridlinePaint(Color,Pink);/设置网格横线颜色plot.SetRangeGridlinePaintIColor.pink);/设置曲线图与Xy轴的距离plot.setAxisOffset(newRectangleInsets(OD,0D,0D,10D);设置曲线姑否显示数据点Xylineandshapcrcnderer.sctBaseShapcsVisible(truc);设置曲线显示各数据点的值XYItcmRendererxyitem=plot.getRendcrer();xyitem.setBaseltem1.abelsVisible(true);xyitem.sctBascPositiveItem1.abelPosition(newItem1.abclPosition(Item1.abelAnchor-OUTSIDE12,TextAnchor-BASE1.INE-1.EFT);xyitem.setBascItcm1.abelGenerator(newStandardXYItem1.abelGenerator();xyitem.sctBascItem1.abclFont(newFont('Dialog",1,14);plot.setRenderer(xyitem);并引入了一些另外的包,引入包的语句变成:v%pageimport三"org.jfree.chart.ChartFactory,xtTitle,org.jfree.data.time.TimeSeries,org.jfree.data.time.Month,org.jfree.data.time.TimeSeriesCollection,org.jfree.chart.plot.XYPlot,org.jfree.chart.renderer.xy.XY1.ineAndShapeRenderer,java.awt.Color,Orgjfree,Ui-RectangleInsets,java.awt.Font,org.jfree.chart.renderer.xy.XYItemRendererforg.jfree.chart.JFrccChart,org.jfree.chart.Servlet.ServletUtilities,org.jfree.chart.labels.*,org.jfree.ui.*"%>运行该实例,效果如卜.所示:闻blog访问,Jtt计2007<ft13.200.M12,20012.4(2.500111200i277.'l-27'l-27t.,l-2007J-2007/l-27-S-HiiKKbIogiAH-上面两例的曲线图都是单曲线的,有时候我们对两个曲线进行比较,例如对阿蜜果在2006年度和2007年度的blog访问量进行比较,在此种状况下,我们须要在个曲线图中显示两个曲线。在此种状况下,我们只须要在SamPIe1.jSP的基础上新建一个TimeSeries对象,给它添加数据后,将其添加到TimeSerieSCOneCtion型数据集合对象中,修改后的程序主体部分如下所示:/访问量统计时间线TimeSeriestimeSeries2006=newTimeSeries("2006年度'',Month.class);TimeSeriestimeSeries2007=newTimeSeries("2007年度",Month.class);/时间曲线数据集合TimeseriesCollectionIineDataset=newTimeSeriesCo11ection();/构造数据集合timcSerics2006.add(newMonth(l,2007),7200);timeSeries2006.add(newMonth(2,2007),7000);timeSerics2006.add(newMonth(3,2007),4200);timeSeries2006.add(newMonth(4f2007),8200);timcScries2006.add(newMonth(5,2007),7300);timeSeries2006.add(newMonth(6,2007),8200);timcSeries2006.add(newMonth(7,2007),9200);timeSeries2006.add(newMonth(8,2007),7300);timeSeries2006.add(newMonth(9,2007),9400);timeSeries2006.add(newMonth(10,2007),7500);timeSeries2006.add(newMonth(l1,2007),6600);timeSeries2006.add(newMonth(12,2007),3500);timcSerics2007.add(newMonth(l,2007),10200);timeSeries2007.add(newMonth(2,2007),9000);timeSeries2007.add(newMonth(3,2007),6200);timcSeries2007.add(newMonth(4,2007),8200);timeSeries2007.add(newMOnth2007),8200);timcSeries2007.add(newMonth(6,2007),11200);timeSeries2007.add(newMonth(7,2007),13200);timeSeries2007.add(newMonth(8f2007),8300);timeSeries2007.add(newMonth(9,2007),10400);timeSeries2007.add(newMonth(10,2007),12500);timeSeries2007.add(newMonth(11,2007),10600);timeSeries2007.add(newMonth(12,2007),10500);IineDataset.addSeries(timeSeries2006);IincDataset.addSeries(timeSeries2007);JFreeChartchart=ChartFaCtory.CreateTimeSeriesChartC访问址统计时间线"月份","访问量",IineDataset,true,true,true);设置子标题TextTitlesubtitle=newTextTitle(',2006/2007年度访WJ敢为j比",newFont("黑体",Font.BO1.D,12);chart.addSubtitle(subtitle);/设置主标题Chart.setTitlc(ncwTextTitle11呵蜜果blog访问量:统计",newFont("隶书",Font.ITA1.IC,15);chart.setAntiAlias(true);该例的运行效果如M用卷票blog访内女计2006/20074»度访问量对比2006'2007:r/«五.-总结本文通过详尽的实例讲解并描述了如何利用JFreeChart开发常用的柱状图、饼图和曲线图。从这些实例中可以看出,JFrCeChart是我们开发图表或报表的志向选择,它筒洁易用,并且简洁理解,是我们开发的利刃。

    注意事项

    本文(JFreeChart使用教程含下载安装.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开