📜  JFreeChart-折线图(1)

📅  最后修改于: 2023-12-03 15:02:07.961000             🧑  作者: Mango

JFreeChart-折线图

JFreeChart 是 Java 中一个非常流行的图表库,可以用于快速生成各种类型的图表。本文将介绍如何在 Java 中使用 JFreeChart 来生成折线图。

1. 添加 JFreeChart 依赖

首先需要在项目中添加 JFreeChart 的依赖,可以通过 Maven 或者手动下载并添加 jar 包的方式来实现。

Maven 依赖:

<dependency>
    <groupId>org.jfree</groupId>
    <artifactId>jfreechart</artifactId>
    <version>1.5.1</version>
</dependency>
2. 创建折线图

下面是一个简单的例子,通过 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);
    }

}
3. 参数说明

上面的代码中,我们使用了以下主要的 JFreeChart 类:

  • JFreeChart:用于创建图表对象,可以设置标题、字体、颜色等属性。
  • XYPlot:用于创建配置 XY 坐标轴的区域,可以设置背景、网格线等属性。
  • NumberAxis:用于创建数值类型的坐标轴,可以设置范围、间隔、标签等属性。
  • DefaultXYDataset:用于存储 XY 类型的数据,可以添加若干组数据(以 double[][] 的二维数组形式表示)。

其中,setRange 方法用于设置坐标轴的范围,setBackgroundPaintsetGridlinePaint 方法用于设置背景和网格线的颜色。

总结

JFreeChart 是一个非常实用的 Java 图表库,可以帮助我们快速生成各种类型的图表。本文介绍了如何使用 JFreeChart 生成折线图,并对代码进行了详细的解析。希望能对读者有所帮助!