`
BradyZhu
  • 浏览: 261213 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JFreeChart 详细介绍使用(三)

 
阅读更多

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使用的3个jar包

    这里我们将详细介绍 JFreeChart 的基本使用,并结合提供的三个关键 jar 包:jcommon-1.0.23.jar、jfreechart-1.0.19.jar 和 struts2-jfreechart-plugin-2.0.11.jar 来说明它们的作用。 1. **jcommon-1.0.23.jar** ...

    JFreeChart使用总结

    这部分详细介绍了JFreeChart遵循的开源许可证的具体内容,包括许可的条款、使用规定等。 以上就是对JFreeChart的基本介绍及其在实际项目中的使用过程,希望对正在学习或使用JFreeChart的开发者有所帮助。

    jfreeChart图解详细开发步骤

    本文将详细介绍如何使用`JFreeChart`来创建图表,并通过具体实例来展示其开发流程。 #### 二、准备工作 在开始使用`JFreeChart`之前,首先需要确保具备以下条件: 1. **Java环境**:确保已经安装了JDK,并且正确...

    JFreeChart 1.0.9 开发文档

    根据给定文件的信息,我们可以提炼出以下关于JFreeChart 1.0.9的重要知识点: ### JFreeChart 1.0.9 开发文档 ...以上内容详细介绍了JFreeChart 1.0.9版本的核心功能和使用方法,希望对读者有所帮助。

    jfreechart中文学习文档

    本文档详细介绍了 JFreeChart 的安装、配置以及如何使用它来创建不同类型的图表。同时,还包含了示例代码和配置步骤,帮助读者更快地掌握 JFreeChart 的使用方法。 **1.2.1 版本** 当前文档版本为 1.0.11,由 ...

    jfreeChart pdf文档(原文)

    - **主要内容**:详细介绍了如何使用 JFreeChart 创建不同类型的图表。 **4.2.1 授权许可** - **授权类型**:说明了 JFreeChart 的授权方式,通常是 LGPL。 **4.3 示例应用源代码** - **源代码获取**:提供了示例...

    NetBeans and JFreeChart

    文档中未详细介绍 JFreeChart 的具体使用方法,但我们可以推断出以下几个关键点: - **引入依赖**:在项目中添加 JFreeChart 的 JAR 文件后,即可在代码中使用其提供的 API 来绘制各种图表。 - **创建图表**:利用 ...

    jfreechart教程

    本教程将详细介绍如何使用JFreeChart进行图表开发。 一、JFreeChart Jar包 JFreeChart_Jar 包是JFreeChart的核心库文件,包含了所有必要的类和方法来创建和定制各种图表。将其添加到Java项目的类路径中,开发者就能...

    JFreeChart用户开发指南1.0.6(中文).pdf

    本指南详细介绍了JFreeChart的功能特点以及如何使用它来满足不同的图表需求。 #### 二、JFreeChart概述 ##### 2.1 什么是JFreeChart? - **定义**:JFreeChart是一款开源的Java图形开发库,主要用于在应用程序、...

    使用JFreeChart来创建基于web的图表.docx

    下面将详细介绍使用JFreeChart来创建基于web的图表的步骤和方法。 首先,需要下载JFreeChart和Jcommon两个文件,从SourceForge.net网站下载最新的版本,目前最新的版本是JFreeChart 0.9.11和Jcommon 0.8.6。 在 ...

    jfreechart 用法

    本文详细介绍了如何使用 `jfreechart` 来创建一个时间序列图表,包括导入必要类库、初始化数据、创建图表以及自定义图表样式等多个方面。这对于理解 `jfreechart` 的基本使用非常有帮助。希望本文能够为初学者提供一...

    JFreeChart 教程和例子

    本教程将详细介绍JFreeChart的使用方法,包括安装、配置以及实际的例子。 ### 1. 安装JFreeChart 在开始使用JFreeChart之前,你需要下载JFreeChart的JAR文件。这通常可以从JFreeChart的官方网站或者其他可靠的开源...

    struts2+jfreechart

    下面将详细介绍这两个库的整合以及如何创建饼状图、柱状图和折线图。 **Struts2框架** Struts2是Apache软件基金会的开源项目,它是基于拦截器的MVC框架,旨在简化Java Web应用的开发。Struts2的核心设计目标是提供...

    jfreechart-1.0.14.zip(含demo)

    本文将详细介绍 JFreeChart 的核心特点、主要功能以及如何通过示例进行应用。 一、JFreeChart 的核心特点 1. 多样性:JFreeChart 支持多种类型的图表,包括折线图、柱状图、饼图、散点图、甘特图、雷达图、热力图等...

    JFreeChart开发文档

    - **图表属性**:详细介绍如何自定义图表的各种属性,如标题、背景色等。 - **绘图区域属性**:介绍如何自定义绘图区域(Plot)的相关属性。 - **轴属性**:说明如何自定义坐标轴的各种属性。 #### 六、动态图表 ##...

Global site tag (gtag.js) - Google Analytics