`
lhgyy00
  • 浏览: 145199 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

POI+jfreechart资料

阅读更多

 

Jfreechart功能介绍

 

JFreeChart它主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。

它可以通过数据生成相应的报表

 

 

我们可以从官方网站上获取最新版本和相关资料(但是jfreeDeveloper Guides是需要花美金才能获取),

获取地址:http://www.jfree.org/jfreechart/index.html(同时可以获得简明介绍)

 

 

JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求,主要包

 

括如下几个方面:

    pie charts (2D and 3D):饼图(平面和立体)

    bar charts (regular and stacked, with an optional 3D effect):柱状图

    line and area charts:曲线图

    time series, high/low/open/close charts and candle stick charts:时序图

    combination charts:复合图

    Gantt charts:甘特图

    (态图表,饼图(二维和三维) , 柱状图 (水平,垂直),线图,点图,时间变化图,甘特图, 股票行情图,混和图, 温度计图, 刻度图等常用商用图表)

图形可以导出成PNGJPEG格式,同时还可以与PDFEXCEL关联

 

JFreeChart核心类库介绍:

研究jfreechart源码发现源码的主要由两个大的包组成:org.jfree.chart,org.jfree.data。其中前者主要与图形本身有关,后者与图形显示的数据有关。具体研究如果大家有兴趣的话可以自己研究。

 

核心类主要有:

     org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象

     org.jfree.data.category.XXXDataSet:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类

     org.jfree.chart.plot.XXXPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要AxisRenderer以及数据集对象的支持

     org.jfree.chart.axis.XXXAxis:用于处理图表的两个轴:纵轴和横轴

     org.jfree.chart.render.XXXRender:负责如何显示一个图表对象

     org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接

     XXXXXToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类

 

数据集对象:

       CategoryDataset:

 

       String[] rowKeys = { "One", "Two", "Three" };

       String[] colKeys = { "1987", "1997", "2007" };

              double[][] data = { { 50, 20, 30 }, { 20, 10D, 40D },

              { 40, 30.0008D, 38.24D }, };

CategoryDataset cd = DatasetUtilities.createCategoryDataset(rowKeys, colKeys, data);

 

CategoryDataset对象 数据用于(Bar-柱状图) Area-区域图) Line-小折线图)

rowKeys:横坐标点标识,1维数组,可设多个,如果数目太多图片显示不开则取平均值,(如:点标识为:12345,图片如果显示不开则显示135)将图片分辨率设大一些可以解决此问题。

colKeys:竖坐标点标识,同上。

date:数据。其中{ 50, 20, 30 }为一条数据,如果是小折线图则是一条线,data里有三条线。支持double型数据

 

 

       PieDataset

             

              DefaultPieDataset defaultpiedataset = new DefaultPieDataset();

              defaultpiedataset.setValue("One", new Double(37.800000000003D));

              defaultpiedataset.setValue("Two", new Double(20.002D));

              defaultpiedataset.setValue("Three", new Double(17.504D));

              defaultpiedataset.setValue("Four", new Double(47D));

 

PieDataset对象, 数据用于 (Pie-饼状图)

第一个参数为饼状图其中一个区域的标识

第二个参数为饼状图其中一个区域所占的大小,支持double型数据

Defaultpiedataset里共有4个区域

 

       XYDataset

 

           // 用于生成第一条折线

              XYSeries xyseries1 = new XYSeries("One");

              xyseries1.add(1, 22420);

              xyseries1.add(2, 2312134.2320);

              xyseries1.add(3, 0);

              // 用于生成第二条折线,以此类推

              XYSeries xyseries2 = new XYSeries("Two");

              for (int i = 0; i <= 19; i++) {

                     int x = i + 1;

                     xyseries2.add(x, i * 10);

              }

 

              XYSeriesCollection xySeriesCollection = new XYSeriesCollection();

              将两条线加入到坐标折线图中

              xySeriesCollection.addSeries(xyseries1);

              xySeriesCollection.addSeries(xyseries2);

 

XYDataset对象,数据用于(XYLine-XY坐标折线图)

XYSeries xyseries1 = new XYSeries("One")为其中一条折线“one”为这条线的标识

xyseries1.add(1, 22420);第一个参数为横坐标点标识。第二个参数为数据,也是竖坐标点标识,它会根据数据的最大值和最小值设置竖坐标点的最大值和最小值。可设多个折点。

 

 

创建报表

      

       Area(区域图):

              JFreeChart jfreechart = ChartFactory.createAreaChart(“AreaPicName”, // 标题

                            “XLineName”, // categoryAxisLabel category轴,横轴,X轴标签)

                            “YLineName”, // valueAxisLabelvalue轴,纵轴,Y轴的标签)

                            categoryDataset, // dataset数据模型

                            PlotOrientation.VERTICAL, true, // legend

                            false, // tooltips

                            false); // URLs

// 以下的设置可以由用户定制,也可以省略

                     CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();

 

                     plot.setBackgroundAlpha(0.5f);

                     plot.setForegroundAlpha(0.5f);

将以创建好的数据模型放到参数里

 

 

Bar (柱状图):

              JFreeChart jfreechart = ChartFactory.createBarChart(“BarPicName”, // 标题

                            “XLineName”, // categoryAxisLabel category轴,横轴,X轴的标签)

                            “YLineName”, // valueAxisLabelvalue轴,纵轴,Y轴的标签)

                            categoryDataset, // dataset数据模型

                            PlotOrientation.VERTICAL, true, // legend

                            false, // tooltips

                            false); // URLs

              // 以下的设置可以由用户定制,也可以省略

              CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();

 

              plot.setBackgroundAlpha(0.5f);

              plot.setForegroundAlpha(0.5f);

              // 其他设置 参考 CategoryPlot

将以创建好的数据模型放到参数里

 

 

Line (小折线图):

       // 创建JFreeChart对象:ChartFactory.createLineChart

JFreeChart jfreechart = ChartFactory.createLineChart(“LinePicName”, // 标题

              “XLineName”, // categoryAxisLabel category轴,横轴,X轴标签)

              “YLineName”, // valueAxisLabelvalue轴,纵轴,Y轴的标签)

              categoryDataset, // dataset数据模型

              PlotOrientation.VERTICAL, true, // legend

              false, // tooltips

              false); // URLs

       // 以下的设置可以由用户定制,也可以省略

       CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();

 

       plot.setBackgroundAlpha(0.5f);

       plot.setForegroundAlpha(0.5f);

       // 其他设置 参考 CategoryPlot

将以创建好的数据模型放到参数里

 

XYLine (XY坐标折线图):

 

// 创建JFreeChart对象:ChartFactory.createXYLineChart

JFreeChart jfreechart = ChartFactory.createXYLineChart(“XYLinePicName”, // 标题

              “XLineName”, // categoryAxisLabel category轴,横轴,X轴标签)

              “YLineName”, // valueAxisLabelvalue轴,纵轴,Y轴的标签)

              dataset, // dataset数据模型

              PlotOrientation.VERTICAL, true, // legend

              false, // tooltips

              false); // URLs

       // 以下的设置可以由用户定制,也可以省略

       XYPlot plot = (XYPlot) jfreechart.getPlot();

 

       plot.setBackgroundAlpha(0.5f);

       plot.setForegroundAlpha(0.5f);

       // 其他设置 参考 CategoryPlot

将以创建好的数据模型放到参数里

 

 

 

 

Pic (饼状图):

JFreeChart jfreechart = ChartFactory.createPieChart(“PicName”, 标题

pieDataset, // dataset数据模型

                            true, // legend

                            false, // tooltips

                            false); // URLs

 

              // 以下的设置可以由用户定制,也可以省略

              PiePlot pieplot = (PiePlot) jfreechart.getPlot();

              pieplot.setBackgroundAlpha(0.5f);

              pieplot.setForegroundAlpha(0.5f);

              // 其他设置 参考 CategoryPlot

将以创建好的数据模型放到参数里

 

 

将图片存储到本地:

       FileOutputStream out = new FileOutputStream(“C:/abc”);图片输出路径</s

分享到:
评论

相关推荐

    word+excel+jfreechart例子

    这个名为"word+excel+jfreechart例子"的压缩包提供了三个示例,分别展示了如何使用Java来实现这些功能。下面我们将详细探讨每个方面的知识点。 首先,我们来看Java操作Word的部分。在Java中,可以使用Apache POI库...

    POI和JFreeChart JAR包

    在Java编程环境中,有时我们需要处理Excel文件或者生成各种图表,这时`Apache POI`和`JFreeChart`库就显得非常实用。这两个JAR包分别提供了处理Microsoft Office文档和创建图表的强大功能。 **Apache POI** 是一个...

    struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合.zip

    这个压缩包文件“struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合.zip”显然是一个整合了这些技术的示例项目,用于演示如何在实际开发中实现数据处理、视图展示以及文件导出功能。 首先,Struts2 ...

    struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合

    在这个"struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合"项目中,开发者可能实现了以下功能: 1. **数据交互**:通过Struts2接收用户请求,将请求转发给Spring管理的业务层,由Hibernate处理数据库...

    JFreeChart 折线、柱状组合图

    public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 &lt;!--begin 维优特例 --&gt; ...

    JFreeChart

    **二、POI与JFreeChart的结合** **Apache POI** 是一个开源库,主要用于读写Microsoft Office格式的文件,如Excel。当与JFreeChart 结合时,可以方便地将生成的图表嵌入到Excel工作表中,实现数据与图表的同步更新...

    Apache POI库jar文件

    Apache POI库是一个开源的Java库,可以帮助开发人员处理Microsoft Office格式的文档,例如Word文档、Excel电子表格和PowerPoint演示文稿等。以下是Apache POI库的详细介绍: 支持多种Office格式:Apache POI库支持...

    JfreeChart-雷达图与导出

    **JFreeChart库详解** JFreeChart是一款强大的Java图表库,它允许开发者在Java应用程序或网页中创建多种类型的图表,包括雷达图(也称为蜘蛛网图)。本篇将深入探讨如何利用JFreeChart生成雷达图以及相关的数据导出...

    JAVA用POI从Excel读取数据进行相关统计,JFreeChart绘制图表.pdf

    【Java使用POI读取Excel数据进行统计及JFreeChart绘制图表】 在Java开发中,有时我们需要处理Excel数据,例如进行统计分析并可视化结果。Apache POI是一个强大的库,允许我们与Microsoft Office格式(如Excel)进行...

    JAVA用POI从Excel读取数据进行相关统计,JFreeChart绘制图表.docx

    在这个文档中,我们看到如何使用POI从Excel文件中提取数据并进行统计分析,然后利用JFreeChart库创建图表展示这些统计数据。 首先,开发者使用`JFileChooser`类来创建一个文件选择对话框,让用户选择要读取的Excel...

    JAVA用POI从Excel读取数据进行相关统计JFreeChart绘制图表.pdf

    【Java使用POI读取Excel数据进行统计并利用JFreeChart绘图】 在Java开发中,经常需要处理Excel数据,例如进行数据导入、分析和可视化。Apache POI库提供了读写Microsoft Office文档的能力,包括Excel。JFreeChart则...

    JfreeChart画双Y轴折线图

    在Java编程领域,JFreeChart是一个非常流行的图表库,它允许开发者创建各种复杂的数据可视化图形,包括折线图、柱状图、饼图等。在本篇博客中,"JfreeChart画双Y轴折线图"的主题,将探讨如何使用JFreeChart库来创建...

    根据模板,freemarker、xDoc、POI三种方式生成Word文档(含jar包)

    通过三种不同的方式(freemarker+jfreechart、xDoc、POI),根据模板创建Word文件。可以动态修改Word中表格(table)、图表(chart)等数据。导入工程后,可直接运行xxxDemo文件,查看文档生成效果。详见压缩包中的...

    jfreechart 1.0.19 源码加文档和依赖包

    - 支持Java SE和Java EE环境,同时可以与其他Java库(如Apache POI)集成,生成Excel图表。 总的来说,JFreeChart 1.0.19版是一个强大且灵活的Java图表库,通过它的源码和文档,开发者可以深入学习图表绘制技术,...

    JfreeChart 示例

    通过结合Apache POI库,可以实现更复杂的数据交互。 总结来说,JfreeChart是一个强大的Java图表库,它的灵活性和易用性使得它在数据可视化领域有着广泛的应用。通过深入理解并实践这个示例,你将能够熟练掌握...

    jfreechart+struts2 图形报表

    在Action类中,我们可以使用POI解析Excel文件,获取所需的数据,然后传递给JFreeChart生成图表。 5. **生成图形报表** 生成图表后,JFreeChart提供了一个`ChartUtilities`类,可以将图表保存为各种图像格式,如...

    jfreechart---lib.zip

    结合最新的POI项目,也可以将生成的统计图表输出到Excel文档中。 JFreeChart可用于生成各式各样的统计图表,只要开发人员提供符合JFreeChart所需格式的数据,JFreeChart即可自动生成相应的统计图表。JFreeChart可...

Global site tag (gtag.js) - Google Analytics