jFreeChart使用总结.docx

上传人:b****6 文档编号:3294502 上传时间:2022-11-21 格式:DOCX 页数:16 大小:20.83KB
下载 相关 举报
jFreeChart使用总结.docx_第1页
第1页 / 共16页
jFreeChart使用总结.docx_第2页
第2页 / 共16页
jFreeChart使用总结.docx_第3页
第3页 / 共16页
jFreeChart使用总结.docx_第4页
第4页 / 共16页
jFreeChart使用总结.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

jFreeChart使用总结.docx

《jFreeChart使用总结.docx》由会员分享,可在线阅读,更多相关《jFreeChart使用总结.docx(16页珍藏版)》请在冰豆网上搜索。

jFreeChart使用总结.docx

jFreeChart使用总结

jFreeChart使用总结

这里分三部分来介绍jFreeChart。

第一部分介绍jFreeChart产生

图形的流程及相关的重要的类;第二部分介绍四种常用的报表图(饼图、柱状图、折线图、时间序列图);第三部分

介绍在图形中增加ItemLable。

jFreeChart的版本是jfreechart-1.0.0-pre2

(1)

 

一、jFreeChart产生图形的流程

  创建一个数据源(dataset)来包含将要在图形中显示的数据,创建一个JFreeChart对象来代表要显示的图形

  把图形输出

  重要的类和接口:

  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

  下面我们结合不同类型的图形来具体分析这个流程。

  

二、饼图

  饼图的dataset一般是用PieDataset接口,具体实现类是DefaultPieDataset

  1、创建一个数据源(dataset):

   privatestaticPieDatasetcreateDataset()

   {

       DefaultPieDatasetdefaultpiedataset=newDefaultPieDataset();//注意是DefaultPieDataset!

       defaultpiedataset.setValue("One",newDouble(43.200000000000003D));

       defaultpiedataset.setValue("Two",newDouble(10D));

       defaultpiedataset.setValue("Three",newDouble(27.5D));

       defaultpiedataset.setValue("Four",newDouble(17.5D));

       returndefaultpiedataset;

   }

  2、由ChartFactory 产生JFreeChart对象

   privatestaticJFreeChartcreateChart(PieDatasetpiedataset)

   {

       JFreeChartjfreechart=ChartFactory.createPieChart("PieChartDemo1", //图形标题名称

                                                             piedataset,  //dataset

                                                             true,     //legend?

                                                             true,    //tooltips?

                                                             false); //URLs?

       PiePlotpieplot=(PiePlot)jfreechart.getPlot(); //通过JFreeChart对象获得plot:

PiePlot!

       pieplot.setNoDataMessage("Nodataavailable");   //没有数据的时候显示的内容

       returnjfreechart;

   }

   一些重要的方法:

   pieplot.setExplodePercent(0,0.3D)//把Lable为"One"的那一块”挖“出来30%   

  3、输出略 

  

三、柱状图

  柱状图的dataset一般是用CatagoryDataset接口(具体实现类是DefaultCategoryDataset),也会用IntervalXYDataset

  接口

  1、创建一个数据源(dataset):

   privatestaticCategoryDatasetcreateDataset()

   {

       Stringseries1="First";

       Stringseries2="Second";

       Stringseries3="Third";

       Stringcategory1="Category1";

       Stringcategory2="Category2";

       Stringcategory3="Category3";

       Stringcategory4="Category4";

       Stringcategory5="Category5";

       DefaultCategoryDatasetdefaultcategorydataset=newDefaultCategoryDataset();

       defaultcategorydataset.addValue(1.0D,series1,category1);

       defaultcategorydataset.addValue(4D,series1,category2);

       defaultcategorydataset.addValue(3D,series1,category3);

       defaultcategorydataset.addValue(5D,series1,category4);

       defaultcategorydataset.addValue(5D,series1,category5);

       

       defaultcategorydataset.addValue(5D,series2,category1);

       defaultcategorydataset.addValue(7D,series2,category2);

       defaultcategorydataset.addValue(6D,series2,category3);

       defaultcategorydataset.addValue(8D,series2,category4);

       defaultcategorydataset.addValue(4D,series2,category5);

       

       defaultcategorydataset.addValue(4D,series3,category1);

       defaultcategorydataset.addValue(3D,series3,category2);

       defaultcategorydataset.addValue(2D,series3,category3);

       defaultcategorydataset.addValue(3D,series3,category4);

       defaultcategorydataset.addValue(6D,series3,category5);

       returndefaultcategorydataset;

   }

  2、由ChartFactory 产生JFreeChart对象   

   privatestaticJFreeChartcreateChart(CategoryDatasetcategorydataset)

   {

       JFreeChartjfreechart=ChartFactory.createBarChart("BarChartDemo",//图形标题名称

                                                           "Category",//domain轴Lable

                                                                        这里先简单理解为横坐标Lable好了

                                                           "Value",//range轴Lable

                                                                      这里也先简单理解为纵坐标Lable好了

                                                           categorydataset,// dataset

                                                           PlotOrientation.VERTICAL,//垂直显示

                                                           true,//legend?

                                                           true, //tooltips?

                                                           false);//URLs?

       jfreechart.setBackgroundPaint(Color.white);  //设定背景色为白色

       CategoryPlotcategoryplot=jfreechart.getCategoryPlot();//获得plot:

CategoryPlot!

       categoryplot.setBackgroundPaint(Color.lightGray);//设定图表数据显示部分背景色

       categoryplot.setDomainGridlinePaint(Color.white);//横坐标网格线白色

       categoryplot.setDomainGridlinesVisible(true);//可见

       categoryplot.setRangeGridlinePaint(Color.white);//纵坐标网格线白色

       //下面两行使纵坐标的最小单位格为整数

       NumberAxisnumberaxis=(NumberAxis)categoryplot.getRangeAxis();

       numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

       BarRendererbarrenderer=(BarRenderer)categoryplot.getRenderer();//获得renderer注意这里是下嗍造型

                                                                            到BarRenderer!

       barrenderer.setDrawBarOutline(false);//Bar的外轮廓线不画

       GradientPaintgradientpaint=newGradientPaint(0.0F,0.0F,Color.blue,

       0.0F,0.0F,newColor(0,0,64));  //设定特定颜色

       GradientPaintgradientpaint1=newGradientPaint(0.0F,0.0F,Color.green,

       0.0F,0.0F,newColor(0,64,0));

       GradientPaintgradientpaint2=newGradientPaint(0.0F,0.0F,Color.red,

       0.0F,0.0F,newColor(64,0,0));

       barrenderer.setSeriesPaint(0,gradientpaint);//给series1Bar设定上面定义的颜色

       barrenderer.setSeriesPaint(1,gradientpaint1);//给series2Bar设定上面定义的颜色

       barrenderer.setSeriesPaint(2,gradientpaint2);//给series3Bar设定上面定义的颜色

       CategoryAxiscategoryaxis=categoryplot.getDomainAxis(); //横轴上的Lable45度倾斜

       categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);       

       returnjfreechart;

   } 

   一些重要的方法:

(增加一块标记)

       IntervalMarkerintervalmarker=newIntervalMarker(4.5D,7.5D);

       intervalmarker.setLabel("TargetRange");

       intervalmarker.setLabelFont(newFont("SansSerif",2,11));

       intervalmarker.setLabelAnchor(RectangleAnchor.LEFT);

       intervalmarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT);

       intervalmarker.setPaint(newColor(222,222,255,128));

       categoryplot.addRangeMarker(intervalmarker,Layer.BACKGROUND);   

       

四、折线图

  折线图的dataset两种CatagoryDataset接口(具体实现类是DefaultCategoryDataset),XYDataset接口

  1、CatagoryDataset接口:

        

  A、创建一个数据源(dataset):

   privatestaticCategoryDatasetcreateDataset()

   {

       Stringseries1="First";

       Stringseries2="Second";

       Stringseries3="Third";

       Stringtype1="Type1";

       Stringtype2="Type2";

       Stringtype3="Type3";

       Stringtype4="Type4";

       Stringtype5="Type5";

       Stringtype6="Type6";

       Stringtype7="Type7";

       Stringtype8="Type8";

       DefaultCategoryDatasetdefaultcategorydataset=newDefaultCategoryDataset();

       defaultcategorydataset.addValue(1.0D,series1,type1);

       defaultcategorydataset.addValue(4D,series1,type2);

       defaultcategorydataset.addValue(3D,series1,type3);

       defaultcategorydataset.addValue(5D,series1,type4);

       defaultcategorydataset.addValue(5D,series1,type5);

       defaultcategorydataset.addValue(7D,series1,type6);

       defaultcategorydataset.addValue(7D,series1,type7);

       defaultcategorydataset.addValue(8D,series1,type8);

       

       defaultcategorydataset.addValue(5D,series2,type1);

       defaultcategorydataset.addValue(7D,series2,type2);

       defaultcategorydataset.addValue(6D,series2,type3);

       defaultcategorydataset.addValue(8D,series2,type4);

       defaultcategorydataset.addValue(4D,series2,type5);

       defaultcategorydataset.addValue(4D,series2,type6);

       defaultcategorydataset.addValue(2D,series2,type7);

       defaultcategorydataset.addValue(1.0D,series2,type8);

       

       defaultcategorydataset.addValue(4D,series3,type1);

       defaultcategorydataset.addValue(3D,series3,type2);

       defaultcategorydataset.addValue(2D,series3,type3);

       defaultcategorydataset.addValue(3D,series3,type4);

       defaultcategorydataset.addValue(6D,series3,type5);

       defaultcategorydataset.addValue(3D,series3,type6);

       defaultcategorydataset.addValue(4D,series3,type7);

       defaultcategorydataset.addValue(3D,series3,type8);

       returndefaultcategorydataset;

   }

  B、由ChartFactory 产生JFreeChart对象    (与上面重复的部分就不再注释)

   privatestaticJFreeChartcreateChart(CategoryDatasetcategorydataset)

   {

       JFreeChartjfreechart=ChartFactory.createLineChart("LineChartDemo1",

                                                            "Type",

                                                            "Value",

                                                            categorydataset,

                                                            PlotOrientation.VERTICAL,

                                                            true,

                                                            

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1