[java] JFreeChart에서 축 설정하기

JFreeChart에서 축을 설정하는 방법은 간단합니다. 아래의 예시 코드를 통해 자세히 살펴보겠습니다.

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.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

import javax.swing.*;
import java.awt.*;

public class AxisExample {

    public static void main(String[] args) {

        // 데이터셋 생성
        XYDataset dataset = createDataset();

        // 그래프 생성
        JFreeChart chart = ChartFactory.createXYLineChart(
                "Chart Title",
                "X Axis",
                "Y Axis",
                dataset,
                PlotOrientation.VERTICAL,
                true,
                true,
                false
        );

        // 축 설정
        XYPlot plot = chart.getXYPlot();
        NumberAxis xAxis = (NumberAxis) plot.getDomainAxis();
        NumberAxis yAxis = (NumberAxis) plot.getRangeAxis();
        
        // X축 설정
        xAxis.setRange(0, 10); // X축 범위 설정
        xAxis.setLabel("X Label"); // X축 레이블 설정
        xAxis.setTickUnit(new NumberAxis.DefaultTickUnit(1)); // X축 눈금 간격 설정

        // Y축 설정
        yAxis.setRange(0, 20); // Y축 범위 설정
        yAxis.setLabel("Y Label"); // Y축 레이블 설정
        yAxis.setTickUnit(new NumberAxis.DefaultTickUnit(2.5)); // Y축 눈금 간격 설정

        // 차트를 나타내는 패널 생성
        ChartPanel chartPanel = new ChartPanel(chart);

        // JFrame 생성
        JFrame frame = new JFrame("Axis Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());
        frame.add(chartPanel, BorderLayout.CENTER);
        frame.setSize(500, 400);
        frame.setVisible(true);
    }

    private static XYDataset createDataset() {
        // 데이터 포인트 생성
        XYSeries series = new XYSeries("Data");

        series.add(1, 2);
        series.add(3, 4);
        series.add(5, 6);
        series.add(7, 8);
        series.add(9, 10);

        // 데이터셋 생성
        XYSeriesCollection dataset = new XYSeriesCollection();
        dataset.addSeries(series);

        return dataset;
    }
}

위의 코드에서는 JFreeChart를 사용하여 XYLineChart를 생성하고, X축과 Y축을 설정하였습니다. X축과 Y축의 범위, 레이블, 눈금 간격을 설정하기 위해 NumberAxis 클래스의 메서드를 사용했습니다.

주의할 점은 X축과 Y축을 각각 NumberAxis로 캐스팅해야 한다는 것입니다. 이를 통해 해당 축의 설정 메서드를 사용할 수 있습니다.

축 설정 이후에는 ChartPanel을 생성하여 차트를 나타내는 패널로 설정하고, JFrame을 생성하여 차트를 보여줍니다.

이처럼 JFreeChart에서 축을 설정하는 방법은 간단하면서도 유연합니다. 필요한 설정을 적절히 조절하여 다양한 그래프를 효율적으로 표현할 수 있습니다.

더 자세한 내용은 JFreeChart 공식 홈페이지에서 확인할 수 있습니다.