[java] JFreeChart에서 차트 저장하기

JFreeChart는 자바를 위한 오픈 소스 차트 라이브러리입니다. 이 라이브러리를 사용하면 다양한 유형의 차트를 생성하고 표시할 수 있습니다. 이번 포스트에서는 JFreeChart를 사용하여 생성한 차트를 이미지 파일로 저장하는 방법에 대해 알아보겠습니다.

1. JFreeChart 의존성 추가

먼저, JFreeChart를 사용하기 위해 프로젝트에 해당 라이브러리를 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다.

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

Gradle을 사용한다면, build.gradle 파일에 다음 의존성을 추가합니다.

implementation 'org.jfree:jfreechart:1.5.3'

2. 차트 생성하기

JFreeChart를 사용하여 차트를 생성하는 방법은 다양합니다. 여기서는 간단한 라인 차트를 생성하는 예제를 사용하겠습니다.

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;

import java.io.File;
import java.io.IOException;

public class ChartExample {
    public static void main(String[] args) {
        // 데이터셋 생성
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(1, "Series 1", "Category 1");
        dataset.addValue(2, "Series 1", "Category 2");
        dataset.addValue(3, "Series 1", "Category 3");
        dataset.addValue(4, "Series 1", "Category 4");
        
        // 차트 생성
        JFreeChart chart = ChartFactory.createLineChart(
                "Chart Title",
                "Category",
                "Value",
                dataset
        );
        
        // 차트를 이미지 파일로 저장
        try {
            ChartUtilities.saveChartAsJPEG(new File("chart.jpg"), chart, 500, 300);
            System.out.println("차트 저장 완료");
        } catch (IOException e) {
            System.err.println("차트 저장 실패: " + e.getMessage());
        }
    }
}

위 예제에서는 DefaultCategoryDataset을 사용하여 데이터셋을 생성하고, ChartFactory.createLineChart 메소드를 사용하여 차트를 생성합니다. 마지막으로 ChartUtilities.saveChartAsJPEG 메소드를 사용하여 생성한 차트를 이미지 파일로 저장합니다.

3. 결과 확인하기

main 메소드를 실행하여 차트를 생성하고 이미지 파일로 저장하면, 해당 경로에 chart.jpg 파일이 생성됩니다. 파일을 열어서 생성된 차트를 확인할 수 있습니다.

결론

JFreeChart를 사용하여 생성한 차트를 이미지 파일로 저장하는 방법에 대해 알아보았습니다. 이를 활용하여 자바 애플리케이션에서 다양한 유형의 차트를 생성하고 저장할 수 있습니다.