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

JFreeChart는 Java에서 사용할 수 있는 무료 차트 라이브러리입니다. Dual Axis 차트는 두 개의 축을 가지고 데이터를 비교하는 데 유용합니다. 이번 글에서는 JFreeChart를 사용하여 Dual Axis 차트를 그리는 방법을 알아보겠습니다.

1. 프로젝트 설정

먼저, JFreeChart를 사용하기 위해 프로젝트에 적절한 종속성을 추가해야 합니다. Maven을 사용하는 경우 pom.xml에 다음 종속성을 추가하세요:

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

Gradle을 사용하는 경우 build.gradle에 다음 종속성을 추가하세요:

dependencies {
    implementation 'org.jfree:jfreechart:1.5.3'
}

2. Dual Axis 차트 그리기

JFreeChart를 사용하여 Dual Axis 차트를 그리려면 다음 단계를 따르세요:

2.1. 데이터 준비

Dual Axis 차트에는 두 개의 데이터셋이 필요합니다. 예를 들어, 아래와 같이 두 개의 데이터셋을 생성합니다:

XYSeries series1 = new XYSeries("Series 1");
series1.add(1.0, 5.0);
series1.add(2.0, 10.0);
series1.add(3.0, 15.0);

XYSeries series2 = new XYSeries("Series 2");
series2.add(1.0, 10.0);
series2.add(2.0, 20.0);
series2.add(3.0, 30.0);

2.2. 데이터셋을 생성하고 축을 설정

데이터셋을 생성하고 축을 설정합니다:

XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series1);

// Dual Axis에 추가되는 데이터셋은 다른 축을 사용해야 합니다
XYSeriesCollection dataset2 = new XYSeriesCollection();
dataset2.addSeries(series2);

// Dual Axis를 위해 두 번째 데이터셋과 축을 생성
NumberAxis yAxis2 = new NumberAxis("Y2");
yAxis2.setAutoRangeIncludesZero(false);

XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer);
plot.setDataset(1, dataset2);
plot.setRangeAxis(1, yAxis2);

2.3. Dual Axis Renderer 설정

Dual Axis Renderer를 설정하여 Dual Axis 차트를 그립니다:

StandardXYItemRenderer renderer = new StandardXYItemRenderer();
renderer.setSeriesPaint(0, Color.BLUE);
renderer.setSeriesPaint(1, Color.RED);

plot.setRenderer(renderer);
plot.mapDatasetToRangeAxis(1, 1);

2.4. 차트 생성 및 출력

마지막으로 차트를 생성하고 출력합니다:

JFreeChart chart = new JFreeChart("Dual Axis Chart", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
ChartPanel chartPanel = new ChartPanel(chart);

JFrame frame = new JFrame("Dual Axis Chart Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(chartPanel);
frame.setSize(500, 400);
frame.setVisible(true);

3. 실행 결과

위의 코드를 실행하면 아래와 같은 Dual Axis 차트가 생성됩니다:

Dual Axis Chart

4. 결론

이번 글에서는 JFreeChart를 사용하여 Dual Axis 차트를 그리는 방법을 알아보았습니다. Dual Axis 차트는 두 가지 다른 데이터셋을 비교하기에 유용하며, JFreeChart를 사용하면 쉽게 그릴 수 있습니다. JFreeChart의 다양한 기능을 사용하여 보다 복잡한 차트를 그릴 수도 있으니 자세한 내용은 JFreeChart 공식 문서를 참고하시기 바랍니다.