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

JFreeChart는 Java 기반의 오픈 소스 차트 라이브러리로, 다양한 종류의 차트를 그릴 수 있습니다. 이번에는 JFreeChart를 사용하여 원 차트를 그려보겠습니다.

1. JFreeChart 라이브러리 추가

원 차트를 그리기 위해 우선 JFreeChart 라이브러리를 프로젝트에 추가해야 합니다. 아래의 의존성을 Maven 또는 Gradle 등의 빌드 도구에 추가합니다.

Maven:

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

Gradle:

implementation 'org.jfree:jfreechart:1.5.3'

2. 원 차트 그리기

다음은 JFreeChart를 사용하여 원 차트를 그리는 예제 코드입니다.

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;

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

public class PieChartExample {

    public static void main(String[] args) {

        // 데이터셋 생성
        DefaultPieDataset dataset = new DefaultPieDataset();
        dataset.setValue("Apple", 25);
        dataset.setValue("Banana", 40);
        dataset.setValue("Orange", 35);

        // 차트 생성
        JFreeChart chart = ChartFactory.createPieChart(
                "Fruit Chart",  // 차트 제목
                dataset,        // 데이터셋
                true,           // 범례 사용 여부
                true,           // 툴팁 사용 여부
                false           // URL 링크 사용 여부
        );

        // 차트 스타일 설정
        PiePlot plot = (PiePlot) chart.getPlot();
        plot.setSectionOutlinesVisible(false);
        plot.setLabelFont(new Font("SansSerif", Font.BOLD, 12));
        plot.setNoDataMessage("No data available");
        plot.setCircular(true);

        // 차트 패널 생성
        ChartPanel chartPanel = new ChartPanel(chart);

        // JFrame에 차트 패널 추가
        JFrame frame = new JFrame();
        frame.setContentPane(chartPanel);
        frame.setSize(500, 400);
        frame.setVisible(true);

    }
}

위의 코드는 Apple, Banana, Orange 세 가지 과일의 비율을 나타내는 원 차트를 생성하고, 차트를 화면에 표시하는 예제입니다.

3. 실행 결과

실행하면 다음과 같은 원 차트가 생성되고, 차트가 포함된 창이 표시됩니다.

Pie Chart

결론

이번 포스트에서는 JFreeChart를 사용하여 원 차트를 그리는 방법을 알아보았습니다. JFreeChart를 활용하면 다양한 종류의 차트를 손쉽게 그릴 수 있으므로, 기존 프로젝트에 차트를 추가하거나 데이터 시각화에 활용할 수 있습니다.

참고 자료: