JFreeChart学习笔记
<script type="text/javascript"><!----></script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
JFreeChart中几个核心的对象类:
JFreeChart
JFreeChart中几个核心的对象类:
类名
|
类的作用以及简单描述
|
JFreeChart
|
图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
|
XXXXXDataset
|
数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类。常用的数据集对象有:柱状图数据集对象DefaultCategoryDataset、饼图数据集对象DefauldPieDataset和曲线图数据集对象DefaultTableXYDataset
|
XXXXXPlot
|
图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持。常用的Plot对象有:柱状图CategoryPlot、饼图PiePlot和曲线图XYPlot。
|
XXXXXAxis
|
用于处理图表的两个轴:纵轴和横轴。常用的有NumberAxis数据轴,DateAxis日期轴。
|
XXXXXRenderer
|
负责如何显示一个图表对象。常用的Renderer有DefaultCategoryItemRenderer 柱状图显示器StandardXYItemRenderer曲线图显示器。饼图的Renderer
|
XXXXXURLGenerator
|
用于生成Web图表中每个项目的鼠标点击链接。常用的URLCenerator有StandardCategoryURLGenerator StandardPieURLGenerator StandardXYURLGenerator
|
XXXXXToolTipGenerator
|
用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类。常用的有:StandardXYToolTipGenerator StandardCategoryToolTipGenerator StandardPieItemLabelGenerator
|
一般的创建图表的过程为:
1. 从数据库里读取数据
2. 将数据保存到图表对应的数据集对象中
3. 创建坐标轴对象
4. 创建Renderer对象
5. 创建Plot对象
6. 创建JfreeChart对象
7. 生成图片文件(或者二进制流)
以JfreeChart提供的Web应用的例子来说明一下以上几个步骤:
一.柱图。
public static String generateBarChart(Date hitDate, HttpSession session, PrintWriter pw) {
String filename = null;
try {
// Retrieve list of WebHits
WebHitDataSet whDataSet = new WebHitDataSet();
ArrayList list = whDataSet.getDataBySection(hitDate);//获得数据集
// Throw a custom NoDataException if there is no data
if (list.size() == 0) {
System.out.println("No data has been found");
throw new NoDataException();
}
// Create and populate a CategoryDataset
Iterator iter = list.listIterator();
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
while (iter.hasNext()) {
WebHit wh = (WebHit)iter.next();
dataset.addValue(new Long(wh.getHitCount()), "Hits", wh.getSection());
}//将数据集保存到Dataset对象
// Create the chart object
CategoryAxis categoryAxis = new CategoryAxis("");
ValueAxis valueAxis = new NumberAxis("");//创建坐标轴
BarRenderer renderer = new BarRenderer();//创建Renderer
renderer.setItemURLGenerator(new StandardCategoryURLGenerator("xy_chart.jsp","series","section"));//创建URLGenerator.再不需要连接的情况下将第一个参数设置成"###"就可以了
renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());//创建提示标签
Plot plot = new CategoryPlot(dataset, categoryAxis, valueAxis, renderer);//创建图表区域对象
JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot, false);
chart.setBackgroundPaint(java.awt.Color.white);//创建图表
// Write the chart image to the temporary directory
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());//该工具类上面没有介绍,在鼠标移动到图片时显示提示信息是用Map实现的,这些Map是用该类生成的。
filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);//保存图表为文件
// Write the image map to the PrintWriter
ChartUtilities.writeImageMap(pw, filename, info);//生成Map信息。这些信息写在pw的输出流中,这里的输出流就是Response.out。也就是直接输出到页面了
pw.flush();
} catch (NoDataException e) {
System.out.println(e.toString());
filename = "public_nodata_500x300.png";
} catch (Exception e) {
System.out.println("Exception - " + e.toString());
e.printStackTrace(System.out);
filename = "public_error_500x300.png";
}
return filename;
}
二.图表显示:
<%
......
String filename = WebHitChart.generateBarChart(dDate, session, new PrintWriter(out));//获得图片的文件名。注意该语句写在jsp文件(bar_chart.jsp)的开头,而用out的封装类作为参数,访问该页面后可以看到生成Map热点的内容输出再该页面的开头部分。也就是说最好是把这几句话写在页面有输出之前。
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;//显示图片的Servlet全路径名,另外文件名作为该Servlet的参数
......
%>
......
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
src指定了servlet的全路径名,usermap指定了使用的热点。
该Servlet必须在WEB-INF/web.xml文件中配置:
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
该Servlet的作用就是将图片文件的二进制流数据写道response的输出流中,在客户端也就显示成了图片。
分享到:
相关推荐
在本篇“JFreeChart学习笔记3-简单Line图形创建”中,我们将深入探讨如何使用JFreeChart库在Java环境中创建基本的线性图表。JFreeChart是一个强大的、开源的Java图表库,它允许开发者轻松地生成各种类型的图表,包括...
**JFreeChart学习笔记1 - 简单Pie图创建** 在Java开发中,我们经常需要展示数据,而饼图(Pie Chart)是一种常见的数据可视化工具,尤其适用于展示各项比例关系。JFreeChart是一个强大的开源Java图表库,它提供了...
在本文中,我们将深入探讨如何使用JFreeChart库在Java中创建简单的柱状图,以及如何扩展到3D效果。JFreeChart是一个流行的开源图表库,适用于多种图表类型,包括条形图、线形图、饼图等。通过学习本文,你将能够利用...
《JFreeChart学习详解》 JFreeChart是一个强大的Java库,用于生成高质量的图表,包括折线图、柱状图、饼图、散点图等多种类型。它在各种应用程序中广泛应用,尤其适合于Web应用程序中数据可视化的实现。本文将通过...
饼图,柱形图,曲线图!JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的...本文将通过引领读者学习在JFreeChart中饼图、柱状图和曲线图的进阶应用,来达到熟练使用JFreeChart的目的。
### JfreeChart 学习笔记:深度解析与应用 #### JFreeChart概览与核心功能 JFreeChart作为一款开源的JAVA项目,专为图表开发而设计,支持丰富的图表类型,包括饼图、柱状图(含普通及堆栈柱状图)、线图、散点图、...
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而JFreeChart则是一个强大的Java图表库,能够帮助开发者生成各种复杂的图表,包括折线图。本教程将详细介绍如何在JSP中利用JFreeChart库来...
**JFreeChart学习笔记** JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件、Applet或Web应用中创建各种复杂的图表。这篇笔记将深入探讨JFreeChart的核心概念、使用方法以及常见图表类型,帮助...
在本学习笔记中,我们将深入探讨如何使用 JFreeChart 来构建这些图表,特别是混合图和动态时序图。 首先,构建一个 JFreeChart 图表的基本步骤涉及以下三个主要部分: 1. **创建面板容器**:通常,我们可以继承 `...
"JFreeChart+JSP实现统计图展示"是一个典型的Web应用程序开发案例,它结合了JFreeChart库、JavaServer Pages (JSP) 和Servlet技术,用于从SQL Server 2005数据库中提取数据并以图表的形式呈现。 **JFreeChart** 是...
总结起来,这个项目提供了一个便捷的方式,让 JSP 开发者能够利用 JFreeChart 创建美观且功能丰富的图表,而无需深入学习 JFreeChart 的底层细节。这对于提高开发效率和改善用户体验具有重要意义。如果你正在寻找一...
这份学习资料是针对 JFreeChart 的使用进行讲解,主要涵盖了如何在 Web 项目中集成 JFreeChart 以及创建不同类型的图表。 1. **Web 项目集成**: 在一个标准的 Web 项目中,为了展示 JFreeChart 生成的图表,我们...
JfreeChart则是一个强大的Java图表库,能够帮助开发者创建各种类型的图表,如饼图、柱状图、线图等,广泛应用于数据分析和展示。 在Struts框架中扩展JfreeChart,主要是为了在Web应用中生成动态的、交互式的图表,...
- 提供了详细的源代码示例,帮助开发者学习如何使用 JFreeChart 创建图表。 #### 六、IDE 配置 本章介绍了如何在 Eclipse 和 NetBeans 中配置 JFreeChart。 ##### A.1 引言 简要介绍配置 JFreeChart 的必要性和...
在本篇文章中,我们将深入探讨如何利用JFreeChart 1.0.13版本,在JSP(JavaServer Pages)页面上创建和展示报表。首先,我们需要理解JSP的基本原理和JFreeChart的图表生成机制。 1. **JSP基础**: JSP是Java的一种...
标题“JFreeChart与JSP动态图表”涉及的是在Java Web开发中利用JFreeChart库创建动态图表并与JSP(JavaServer Pages)结合的技术。JFreeChart是一个强大的开源Java库,用于生成高质量的2D图表,包括折线图、柱状图、...
结合JFreeChart和JSP,我们可以创建交互式的网页应用,用户可以直接在页面上查看和分析数据。这种技术广泛应用于数据分析、监控系统和业务报表等场景,使非技术人员也能直观理解复杂的数据信息。 通过阅读给出的...