📅  最后修改于: 2023-12-03 15:02:07.961000             🧑  作者: Mango
JFreeChart 是 Java 中一个非常流行的图表库,可以用于快速生成各种类型的图表。本文将介绍如何在 Java 中使用 JFreeChart 来生成折线图。
首先需要在项目中添加 JFreeChart 的依赖,可以通过 Maven 或者手动下载并添加 jar 包的方式来实现。
Maven 依赖:
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.1</version>
</dependency>
下面是一个简单的例子,通过 JFreeChart 来生成一个包含两个折线的折线图:
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.DefaultXYDataset;
public class LineChartExample extends JFrame {
public LineChartExample() {
// 设置窗口的标题
super("Line Chart Example");
// 创建 XY 数据
DefaultXYDataset dataset = new DefaultXYDataset();
double[][] data1 = {
{ 1, 2, 3, 4, 5 },
{ 1, 2, 3, 4, 5 }
};
double[][] data2 = {
{ 1, 2, 3, 4, 5 },
{ 5, 4, 3, 2, 1 }
};
dataset.addSeries("Data 1", data1);
dataset.addSeries("Data 2", data2);
// 创建 XY 轴,设置范围
NumberAxis xAxis = new NumberAxis("X");
xAxis.setRange(1, 5);
NumberAxis yAxis = new NumberAxis("Y");
yAxis.setRange(1, 5);
// 创建 Plot 并设置相关属性
XYPlot plot = new XYPlot(dataset, xAxis, yAxis, null);
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
// 创建 Chart 并设置相关属性
JFreeChart chart = new JFreeChart(
"Line Chart Example",
JFreeChart.DEFAULT_TITLE_FONT,
plot,
true
);
chart.setBackgroundPaint(Color.white);
// 创建 ChartPanel
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 270));
// 添加 ChartPanel 到窗口中
setContentPane(chartPanel);
}
public static void main(String[] args) {
// 创建并显示窗口
LineChartExample app = new LineChartExample();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.pack();
app.setVisible(true);
}
}
上面的代码中,我们使用了以下主要的 JFreeChart 类:
JFreeChart
:用于创建图表对象,可以设置标题、字体、颜色等属性。XYPlot
:用于创建配置 XY 坐标轴的区域,可以设置背景、网格线等属性。NumberAxis
:用于创建数值类型的坐标轴,可以设置范围、间隔、标签等属性。DefaultXYDataset
:用于存储 XY 类型的数据,可以添加若干组数据(以 double[][]
的二维数组形式表示)。其中,setRange
方法用于设置坐标轴的范围,setBackgroundPaint
和 setGridlinePaint
方法用于设置背景和网格线的颜色。
JFreeChart 是一个非常实用的 Java 图表库,可以帮助我们快速生成各种类型的图表。本文介绍了如何使用 JFreeChart 生成折线图,并对代码进行了详细的解析。希望能对读者有所帮助!