💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 4.2 创建第一个图表 ### 4.2.1 概述 使用JFreeChart创建图表共有三个步骤。如下: + 创建一个dataset。该dataset包含图表要显示的数据。 + 创建一个JFreeChart对象。该对象负责画这个图表。 + 创建一个输出目标(如:一个panel,显示在屏幕上)。该输出目标画这个图表。 下面,我们使用一个简单的应用(First.java)来描述这个过程。该应用产生了一个饼图,如下图4.1所示: ![](https://box.kancloud.cn/2016-01-23_56a34082530dc.png) 图4.1 创建的第一个饼图(参考First.java) 上面描述的三个步骤,将在下面的章节里面,均有代码详细说明。 ### 4.2.2 数据 步骤一要求我们为我们的图表创建一个dataset。使用DefaultPieDataset类可以很容易创建。如下代码: ``` // create a dataset... DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("Category 1", 43.2); dataset.setValue("Category 2", 27.9); dataset.setValue("Category 3", 79.5); ``` 注意: JFreeChart可以使用符合PieDataset接口的任何实现数据来创建饼图。DefaultDataset类实现了PieDataset接口,提供了一种便利的使用方式。 我们可以自由的开发符合实际需的任意PieDataset接口实现。 ### 4.2.3 创建一个饼图 步骤二关心的是我们如何使用这个dataset展示在区域中。这就需要我们创建一个JFreeChart对象,该对象使用我们的饼图dataset数据画一个图表。我们使用ChartFactory类来创建,代码如下: ``` // create a chart... JFreeChart chart = ChartFactory.createPieChart( "Sample Pie Chart", dataset, true, // legend? true, // tooltips? false // URLs? ); ``` 注意: 代码中将一个dataset的引用传入到工厂方法中。JFreeChart持有这个dataset引用的目的是便于在画图表时能够获得数据。使用JFreeChart创建图表有许多定制外观的方式,在这个例子中我们使用缺省的属性值。后面章节将详细介绍。 ### 4.2.4 显示图表 最好一个步骤就是在某个地方显示该图表。JFreeChart提供了非常灵活的图表输出方式。 现在我们可以在一个屏幕的框架中显示这个图表。ChartFrame具有显示图表的机制(ChartPanel)。代码如下: ``` // create and display a frame... ChartFrame frame = new ChartFrame("First", chart); frame.pack(); frame.setVisible(true); ``` 代码全部完成,运行main()方法,可以出现图4.1界面。 ### 4.2.5 全部程序代码 下面是整个例子的全部代码,更加清楚的看到我们需要导入的类包和实现方法。 ``` public class First { public static void main(String[] args) { // create a dataset... DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("Category 1", 43.2); dataset.setValue("Category 2", 27.9); dataset.setValue("Category 3", 79.5); // create a chart... JFreeChart chart = ChartFactory.createPieChart( "Sample Pie Chart", dataset, true, // legend? true, // tooltips? false // URLs? ); // create and display a frame... ChartFrame frame = new ChartFrame("First", chart); frame.pack(); frame.setVisible(true); } } ```