JFreeChart生成图片并显示
时间: 2024-06-11 18:04:51 浏览: 123
JFreeChart是一个Java开发的图表库,可以用于创建各种类型的图表,包括柱状图、折线图、饼图等。在JFreeChart中,可以将生成的图表保存为图片格式,也可以直接在Java程序中将图表显示出来。
以下是使用JFreeChart生成图片并显示的步骤:
1. 创建一个图表对象,例如创建一个柱状图对象:
```
JFreeChart chart = ChartFactory.createBarChart(
"柱状图", // 图表标题
"横轴", // 横轴标签
"纵轴", // 纵轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向(垂直或水平)
true, // 是否显示图例
true, // 是否生成工具(提示框等)
false // 是否生成URL链接
);
```
其中,`dataset`是数据集,可以使用JFreeChart提供的数据集类或自己实现数据集接口。
2. 创建一个图表面板对象,将图表对象添加到面板中:
```
ChartPanel chartPanel = new ChartPanel(chart);
```
3. 将图表面板添加到Swing容器中,例如JFrame:
```
JFrame frame = new JFrame("图表窗口");
frame.getContentPane().add(chartPanel);
frame.setSize(600, 400);
frame.setVisible(true);
```
4. 将图表保存为图片格式,例如PNG格式:
```
File file = new File("chart.png");
ChartUtilities.saveChartAsPNG(file, chart, 600, 400);
```
其中,第一个参数是保存的文件路径,第二个参数是图表对象,第三个和第四个参数是图片的宽度和高度。
完整代码示例:
```
import java.io.File;
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 org.jfree.chart.ChartUtilities;
import javax.swing.JFrame;
public class ChartDemo {
public static void main(String[] args) throws Exception {
// 创建数据集
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Series 1", "Category 1");
dataset.addValue(2.0, "Series 1", "Category 2");
dataset.addValue(3.0, "Series 1", "Category 3");
dataset.addValue(4.0, "Series 1", "Category 4");
dataset.addValue(5.0, "Series 1", "Category 5");
// 创建图表对象
JFreeChart chart = ChartFactory.createBarChart(
"柱状图", // 图表标题
"横轴", // 横轴标签
"纵轴", // 纵轴标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向(垂直或水平)
true, // 是否显示图例
true, // 是否生成工具(提示框等)
false // 是否生成URL链接
);
// 创建图表面板
ChartPanel chartPanel = new ChartPanel(chart);
// 将图表面板添加到窗口中
JFrame frame = new JFrame("图表窗口");
frame.getContentPane().add(chartPanel);
frame.setSize(600, 400);
frame.setVisible(true);
// 将图表保存为图片
File file = new File("chart.png");
ChartUtilities.saveChartAsPNG(file, chart, 600, 400);
}
}
```
运行上述代码后,会弹出一个窗口显示生成的柱状图,并在当前目录下生成一个名为chart.png的图片文件。
阅读全文