Java图表库JFreeChart使用指南

在数据分析和可视化领域,Java提供了一个强大的开源图表库——JFreeChart。它支持多种图表类型,包括饼图、线图、柱状图、区域图等,并且可以轻松地扩展和自定义。本文将介绍JFreeChart的基本概念、特性、安装方法以及如何使用它来创建图表。

JFreeChart概述

JFreeChart是一个开源的Java图表库,它允许开发者在Java应用程序中创建丰富的图表。这个库以其易用性和强大的功能而广受欢迎。以下是JFreeChart的一些主要特性:

  • 开源且完全免费,遵循GNU Lesser General Public License (LGPL),允许在商业应用中免费使用。
  • 提供详尽的API文档,易于学习和使用。
  • 支持多种图表类型,如饼图、线图、柱状图、区域图等。
  • 易于扩展,适用于客户端和服务器端应用程序。
  • 支持多种输出格式,包括PNG、JPEG、PDF、SVG等。
  • 允许对图表进行广泛的自定义。

使用前提

要使用JFreeChart,需要满足以下前提条件:

  • Java2: JFreeChart完全使用Java编写,并使用Java 2D API进行绘图。当前版本的JFreeChart可以在JRE 1.4.2或更高版本上运行。
  • JFreeChart版本:本文使用的是1.0.15版本,这是目前最新的版本。
  • JCommon类库:JFreeChart需要JCommon类库,它包含了JFreeChart用于提供全局实用功能的公共类。

快速入门

现在已经对JFreeChart有了基本的了解,接下来将通过几个示例来展示如何使用JFreeChart创建图表。创建图表的过程大致分为三个步骤:

  1. 创建包含要显示在图表中的数据的数据集。数据集的类型取决于要创建的图表类型。
  2. 创建一个特定类型的JFreeChart对象。在创建这个对象时,需要传递数据集以及其他参数。
  3. 启动绘制图表的过程,目标输出可以是面板、网页等。

安装JFreeChart

在开始示例之前,需要配置JFreeChart库。安装过程非常简单,只需按照以下步骤操作:

  1. 从下载最新版本的JFreeChart。
  2. 将下载的文件解压到选择的目录。将会创建一个名为jfreechart-的新目录。
  3. 探索jfreechart-目录,将找到一个lib目录,其中包含jfreechart-.jar和jcommon.jar文件。需要将这两个文件添加到类路径中,以便运行示例。

饼图示例

饼图用于直观地表示整体在给定点的百分比。饼图是一个圆形图表,具有大小与所代表数据成比例的扇区。在这个示例中,将创建一个饼图来表示特定季度不同手机制造商的市场份额。这里使用的数据不是实际数据,而是为了演示目的而创建的虚构数据。

创建图表的第一步是创建要显示在图表中的数据的数据集。对于饼图数据,需要实现JFreeChart的org.jfree.data.general.PieDataset接口的数据集。JFreeChart提供了一个实现这个接口的类,将使用这个类。这个类是org.jfree.data.general.DefaultPieDataset。使用这个类,可以像下面这样创建饼图的数据:

DefaultPieDataset objDataset = new DefaultPieDataset(); objDataset.setValue("Apple", 29); objDataset.setValue("HTC", 15); objDataset.setValue("Samsung", 24); objDataset.setValue("LG", 7); objDataset.setValue("Motorola", 10);

接下来,需要创建饼图。JFreeChart提供了一个ChartFactory类,可以使用它来创建各种类型的图表。对于饼图,需要调用这个工厂的createPieChart()方法。

JFreeChart objChart = ChartFactory.createPieChart( "Demo Pie Chart", objDataset, true, true, false );

最后一步是在目标源上显示图表。在这个示例中,将在屏幕上的框架中显示图表。需要执行以下操作来以这种方式显示图表:

ChartFrame frame = new ChartFrame("Demo", objChart); frame.pack(); frame.setVisible(true);

柱状图示例

柱状图用于提供表格数据的直观表示。可以按照创建饼图的类似步骤轻松地创建柱状图。继续使用用于饼图的示例,假设有两季度的市场份额数据,想要看到不同手机制造商的市场份额从第一季度到第二季度的变化。

柱状图使用的数据集类型是org.jfree.data.category.CategoryDataset。与饼图数据集的默认实现类似,也有一个默认实现类。这个类名为org.jfree.data.category.DefaultCategoryDataset。可以像下面这样使用:

DefaultCategoryDataset objDataset = new DefaultCategoryDataset(); objDataset.setValue(29, "Q1", "Apple"); objDataset.setValue(15, "Q1", "HTC"); objDataset.setValue(24, "Q1", "Samsung"); objDataset.setValue(22, "Q2", "Apple"); objDataset.setValue(18, "Q2", "HTC"); objDataset.setValue(25, "Q2", "Samsung");

与饼图的创建方法类似,ChartFactory也有一个方法来创建柱状图。这个方法的名称是createBarChart()。

JFreeChart objChart = ChartFactory.createBarChart( "Demo Bar Chart", "Mobile Manufacturer", "Market Share", objDataset, PlotOrientation.VERTICAL, true, true, false ); ChartFrame frame = new ChartFrame("Demo", objChart); frame.pack(); frame.setVisible(true);
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485