[java] JFreeChart에서 Waterfall 차트 그리기

JFreeChart는 자바 기반의 오픈 소스 차트 라이브러리입니다. 이 라이브러리를 사용하여 다양한 종류의 차트를 만들 수 있으며, Waterfall 차트도 그 중 하나입니다. Waterfall 차트는 변화의 원인과 효과를 시각적으로 표현하는데 사용됩니다.

JFreeChart 설치

JFreeChart를 사용하려면 먼저 해당 라이브러리를 설치해야 합니다. 아래의 Maven 의존성을 프로젝트의 Pom.xml 파일에 추가하세요.

<dependency>
    <groupId>org.jfree</groupId>
    <artifactId>jfreechart</artifactId>
    <version>1.5.3</version>
</dependency>

Waterfall 차트 그리기

Waterfall 차트를 그리기 위해서는 데이터셋과 함께 해당 차트의 유형을 설정해야 합니다. 아래의 코드는 JFreeChart를 사용하여 Waterfall 차트를 그리는 예제입니다.

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

public class WaterfallChartExample {

    public static void main(String[] args) {
        // 데이터 생성
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(10, "시작", "A");
        dataset.addValue(15, "변화 1", "A");
        dataset.addValue(-5, "변화 2", "A");
        dataset.addValue(8, "변화 3", "A");
        dataset.addValue(-2, "변화 4", "A");

        // Waterfall 차트 생성
        JFreeChart chart = ChartFactory.createWaterfallChart(
                "Waterfall Chart", "항목", "값", dataset,
                PlotOrientation.VERTICAL, true, true, false);

        // 차트 출력
        // ...
    }
}

위의 코드에서는 DefaultCategoryDataset 객체를 사용하여 데이터셋을 생성하고, ChartFactory.createWaterfallChart() 메서드를 호출하여 Waterfall 차트를 생성합니다. 그리고 생성된 차트를 출력하는 부분은 표시되어 있지 않습니다.

차트 출력하기

Waterfall 차트를 출력하려면 위의 코드에서 주석 처리된 부분을 완성해야 합니다. JFreeChart는 다양한 방법을 통해 출력할 수 있으며, 예를 들어 Swing 컴포넌트를 사용하여 차트를 화면에 표시할 수 있습니다.

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

public class WaterfallChartExample {

    public static void main(String[] args) {
        // ...

        // 차트 출력
        JFrame frame = new JFrame("Waterfall Chart");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 600);
        frame.getContentPane().add(new ChartPanel(chart));
        frame.setVisible(true);
    }
}

위의 코드는 JFrameChartPanel을 사용하여 차트를 화면에 출력하는 예제입니다. ChartPanel은 JFreeChart를 JPanel 형태로 변환하여 Swing 컴포넌트로 사용하는 클래스입니다.

결론

JFreeChart를 사용하여 Waterfall 차트를 그리는 방법을 살펴보았습니다. 이를 통해 변화의 원인과 효과를 시각적으로 표현할 수 있으며, 데이터의 변동을 쉽게 이해할 수 있습니다. JFreeChart의 다양한 기능과 유연성을 활용하여 다른 종류의 차트도 그릴 수 있습니다.