[java] JFreeChart에서 100% Stacked Bar 차트 그리기

JFreeChart는 Java에서 사용할 수 있는 강력한 차트 라이브러리입니다. 이 라이브러리를 사용하여 100% Stacked Bar 차트를 그릴 수 있습니다. 100% Stacked Bar 차트는 다양한 범주에 대한 데이터의 상대적인 비율을 비교하는데 유용합니다.

JFreeChart 및 JCommon 라이브러리 가져오기

먼저 JFreeChart와 JCommon 라이브러리를 사용하기 위해 해당 라이브러리들을 가져와야 합니다. 아래와 같이 Maven을 통해 의존성을 추가할 수 있습니다.

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

또는 직접 다운로드하여 프로젝트에 추가할 수도 있습니다.

100% Stacked Bar 차트 생성하기

아래는 100% Stacked Bar 차트를 생성하는 예제 코드입니다.

import org.jfree.chart.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.StackedBarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;

public class StackedBarChartExample {
    public static void main(String[] args) {
        // 데이터셋 생성
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(20, "A", "Category 1");
        dataset.addValue(30, "A", "Category 2");
        dataset.addValue(50, "A", "Category 3");
        dataset.addValue(40, "B", "Category 1");
        dataset.addValue(10, "B", "Category 2");
        dataset.addValue(30, "B", "Category 3");

        // 차트 생성
        JFreeChart chart = ChartFactory.createStackedBarChart(
                "100% Stacked Bar Chart", // 차트 제목
                "Category", // x축 레이블
                "Value", // y축 레이블
                dataset, // 데이터셋
                PlotOrientation.VERTICAL, // 차트 방향
                true, // 범례 표시 여부
                true, // 도구팁 표시 여부
                false // URL 링크 표시 여부
        );

        // 차트 스타일 설정
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer();
        renderer.setRenderAsPercentages(true); // 상대적인 비율로 표시

        // 차트 출력
        ChartFrame frame = new ChartFrame("Stacked Bar Chart Example", chart);
        frame.pack();
        frame.setVisible(true);
    }
}

실행 결과

위의 예제 코드를 실행하면 100% Stacked Bar 차트가 생성됩니다. 각 범주(Category) 별로 데이터의 상대적인 비율이 표시되어 있습니다.

Stacked Bar Chart

위 예제 코드를 참고하여 자신의 데이터에 맞게 100% Stacked Bar 차트를 그려보세요. JFreeChart는 다양한 차트 유형과 옵션을 제공하므로 차트를 다양하게 커스터마이징할 수 있습니다.

참고 자료