在数据统计和图表展示方面,jfreechart是Java开发者的首选工具之一。它提供了各种类型的图表展示,包括折线图、柱形图、饼状图等等。在这篇文章中,我们将介绍jfreechart的使用方法,帮助您制作高质量的统计图表。
1. 安装jfreechart
首先,我们需要安装jfreechart。下载最新的jfreechart二进制文件,将它们解压缩到您喜欢的目录下。
2. 导入jfreechart库
为了在Java项目中使用jfreechart,我们需要将它们导入项目中。将jfreechart库文件夹中的文件夹和jar包添加到项目的classpath中。
3. 创建一个简单的折线图
我们从最简单的图表开始——一个折线图。创建一个名为"LineChartExample.java"的文件,并将以下代码粘贴到文件中:
```java
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.JFrame;
public class LineChartExample extends JFrame {
private static final long serialVersionUID = 1L;
public LineChartExample(String applicationTitle, String chartTitle) {
super(applicationTitle);
// 创建数据集
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(15, "schools", "2015");
dataset.addValue(30, "schools", "2016");
dataset.addValue(60, "schools", "2017");
dataset.addValue(120, "schools", "2018");
dataset.addValue(240, "schools", "2019");
// 创建图表
JFreeChart chart = ChartFactory.createLineChart(
chartTitle,
"Year",
"Number of Schools",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false
);
// 添加面板
ChartPanel chartPanel = new ChartPanel(chart);
setContentPane(chartPanel);
}
public static void main(String[] args) {
LineChartExample example = new LineChartExample("Line Chart Example", "Number of Schools vs Years");
example.pack();
example.setVisible(true);
}
}
```
代码解释:
1. 我们继承了JFrame类,以便在我们的窗口中显示图表。
2. 创建一个DefaultCategoryDataset实例,其中包含我们要绘制的数据。
3. 使用ChartFactory类的静态方法创建折线图。我们指定了数据集、图表标题、横轴标签、纵轴标签、图表方向等参数。
4. 将图表添加到JFrame容器中,并将它们作为图表面板返回。
4. 创建一个简单的柱状图
现在,让我们尝试创建一个更复杂的图表——一个柱状图。创建一个名为"BarChartExample.java"的文件,并将以下代码粘贴到文件中:
```java
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.JFrame;
public class BarChartExample extends JFrame {
private static final long serialVersionUID = 1L;
public BarChartExample(String applicationTitle, String chartTitle) {
super(applicationTitle);
// 创建数据集
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(15, "schools", "2015");
dataset.addValue(30, "schools", "2016");
dataset.addValue(60, "schools", "2017");
dataset.addValue(120, "schools", "2018");
dataset.addValue(240, "schools", "2019");
// 创建图表
JFreeChart chart = ChartFactory.createBarChart(
chartTitle,
"Year",
"Number of Schools",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false
);
// 添加面板
ChartPanel chartPanel = new ChartPanel(chart);
setContentPane(chartPanel);
}
public static void main(String[] args) {
BarChartExample example = new BarChartExample("Bar Chart Example", "Number of Schools vs Years");
example.pack();
example.setVisible(true);
}
}
```
代码解释:
1. 我们继承了JFrame类,以便在我们的窗口中显示图表。
2. 创建一个DefaultCategoryDataset实例,其中包含我们要绘制的数据。
3. 使用ChartFactory类的静态方法创建柱状图。我们指定了数据集、图表标题、横轴标签、纵轴标签、图表方向等参数。
4. 将图表添加到JFrame容器中,并将它们作为图表面板返回。
5. 创建一个简单的饼状图
现在,让我们尝试创建一个饼状图。创建一个名为"PieChartExample.java"的文件,并将以下代码粘贴到文件中:
```java
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import javax.swing.JFrame;
public class PieChartExample extends JFrame {
private static final long serialVersionUID = 1L;
public PieChartExample(String applicationTitle, String chartTitle) {
super(applicationTitle);
// 创建数据集
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("China", new Double(20));
dataset.setValue("USA", new Double(20));
dataset.setValue("India", new Double(19));
dataset.setValue("Japan", new Double(6));
dataset.setValue("Germany", new Double(5));
// 创建图表
JFreeChart chart = ChartFactory.createPieChart3D(
chartTitle,
dataset,
true,
true,
false
);
// 配置图形属性
PiePlot3D plot = (PiePlot3D) chart.getPlot();
plot.setStartAngle(290);
plot.setForegroundAlpha(0.5f);
plot.setNoDataMessage("No data to display");
// 添加面板
ChartPanel chartPanel = new ChartPanel(chart);
setContentPane(chartPanel);
}
public static void main(String[] args) {
PieChartExample example = new PieChartExample("Pie Chart Example", "Country Population");
example.pack();
example.setVisible(true);
}
}
```
代码解释:
1. 我们继承了JFrame类,以便在我们的窗口中显示图表。
2. 创建一个DefaultPieDataset实例,其中包含我们要绘制的数据。
3. 使用ChartFactory类的静态方法创建饼状图。我们指定了数据集、图表标题、是否显示图例、是否显示工具提示等参数。
4. 配置图形属性,包括起始角度、前景颜色透明度等。
5. 将图表添加到JFrame容器中,并将它们作为图表面板返回。
6. 总结
在这篇文章中,我们介绍了jfreechart的使用方法,包括创建折线图、柱状图和饼状图。jfreechart是一个功能强大的工具,可以帮助您制作高质量的统计图表。如果您希望了解更多关于jfeechart的内容,您可以参考它们的官方文档。