[java] JFreeChart에서 Dual Axis 연결 차트 그리기

JFreeChart는 자바 기반의 오픈 소스 라이브러리로서 다양한 종류의 그래프와 차트를 생성할 수 있습니다. Dual Axis 연결 차트는 두 개의 축을 가진 차트로, 서로 다른 스케일을 가진 두 개의 데이터 집합을 동시에 표시할 수 있습니다.

JFreeChart 설치하기

적절한 버전의 JFreeChart 라이브러리를 다운로드하여 프로젝트에 추가해야 합니다. 라이브러리를 다운로드하는 방법과 프로젝트에 추가하는 방법은 JFreeChart 공식 웹사이트나 Maven 또는 Gradle과 같은 의존성 관리 도구의 문서를 참조하시기 바랍니다.

Dual Axis 연결 차트 생성하기

다음은 Dual Axis 연결 차트를 생성하는 예제 코드입니다.


import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.*;
import org.jfree.chart.renderer.xy.XYBarRenderer;
import org.jfree.chart.renderer.xy.XYSplineRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetUtilities;

import java.awt.*;

public class DualAxisChartExample {

    public static void main(String[] args) {
        // 데이터 생성
        double[][] data = {{1, 2, 3, 4, 5}, {9, 8, 7, 6, 5}};
        DefaultCategoryDataset dataset = DatasetUtilities.createCategoryDataset("Series ", "", data);

        // 차트 생성
        JFreeChart chart = ChartFactory.createBarChart("Dual Axis 연결 차트", "", "", dataset, PlotOrientation.VERTICAL, true, true, false);
        ChartFrame frame = new ChartFrame("Dual Axis Chart", chart);
        frame.setVisible(true);
        frame.setSize(500, 400);

        // 두 번째 데이터 집합을 위한 축 객체 생성
        NumberAxis rangeAxis = new NumberAxis("Secondary");
        rangeAxis.setAutoRangeIncludesZero(false);
        rangeAxis.setLabelPaint(Color.blue);
        rangeAxis.setTickLabelPaint(Color.blue);

        // 그래프 옵션 설정
        XYPlot plot = (XYPlot) chart.getPlot();
        plot.setRangeAxis(1, rangeAxis);
        plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
        plot.setDataset(1, dataset);
        plot.mapDatasetToRangeAxis(1, 1);

        // 두 번째 데이터 집합에 선 그래프 추가
        XYSplineRenderer splineRenderer = new XYSplineRenderer();
        splineRenderer.setSeriesPaint(0, Color.blue);
        plot.setRenderer(1, splineRenderer);
    }
}

위의 코드는 JFreeChart를 사용하여 Dual Axis 연결 차트를 생성하는 간단한 예제입니다. 프로젝트에 JFreeChart 라이브러리가 추가되어 있다면 위의 코드를 실행하면 차트가 생성되고 표시됩니다.

결론

JFreeChart를 사용하면 Dual Axis 연결 차트를 쉽게 생성할 수 있습니다. 이러한 차트는 서로 다른 스케일을 가진 두 개의 데이터를 시각적으로 비교하고 분석하는 데 유용합니다. 추가적인 설정을 통해 차트를 더욱 개선하고 사용자 요구에 맞게 수정할 수도 있습니다.

참고문서