[java] JFreeChart에서 High Low Bar 차트 그리기

JFreeChart은 Java 기반의 오픈 소스 차트 라이브러리로, 다양한 종류의 차트를 생성하고 표시하는 기능을 제공합니다. High Low Bar 차트는 주식 등에서 가격의 최고점과 최저점을 시각적으로 나타내는데 유용한 차트입니다. 이번 튜토리얼에서는 JFreeChart를 사용하여 High Low Bar 차트를 그리는 방법을 알아보겠습니다.

1. JFreeChart 라이브러리 추가하기

프로젝트에서 JFreeChart를 사용하기 위해서는 먼저 해당 라이브러리를 추가해야 합니다. JFreeChart는 Maven 중앙 저장소에서 다운로드할 수 있으므로, 프로젝트의 Maven 또는 Gradle 설정 파일에 의존성을 추가해주세요. 아래는 Maven을 사용하는 경우의 예시입니다.

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

2. High Low Bar 차트 데이터 생성하기

High Low Bar 차트를 그리기 위해 먼저 데이터를 생성해야 합니다. 주식 가격의 최고치(High)와 최저치(Low)를 포함하는 OHLC(Open-High-Low-Close) 형태의 데이터를 사용합니다. 예시로 다음과 같은 데이터를 생성해보겠습니다.

DefaultHighLowDataset dataset = new DefaultHighLowDataset(
        "Stock Prices",
        new Date[]{new Date(2022, 0, 1), new Date(2022, 0, 2), new Date(2022, 0, 3)},
        new double[]{100, 150, 120},
        new double[]{80, 160, 110},
        new double[]{110, 170, 100},
        new double[]{90, 140, 105},
        new double[]{100, 160, 115}
);

위 코드에서는 “Stock Prices”라는 제목을 가진 데이터셋을 생성하고, 각각의 데이터는 날짜와 해당 날짜의 최고치, 최저치, 오픈 가격, 종가를 나타내고 있습니다.

3. High Low Bar 차트 생성하기

생성한 데이터셋을 사용하여 High Low Bar 차트를 생성합니다. 아래 코드는 JFreeChart 객체를 생성하고, 데이터셋을 설정하여 High Low Bar 차트를 생성하는 예시입니다.

JFreeChart chart = ChartFactory.createHighLowChart(
        "Stock Price Chart", // 차트 제목
        "Date", // X축 라벨
        "Price", // Y축 라벨
        dataset, // 데이터셋
        true // 범례 표시 여부
);

위 코드에서는 “Stock Price Chart”라는 제목을 가진 High Low Bar 차트를 생성하고, X축에는 “Date”라벨을, Y축에는 “Price”라벨을 표시합니다. 또한 데이터셋을 설정하고 범례를 표시하는 옵션을 추가했습니다.

4. 차트 표시하기

생성한 차트를 표시하기 위해 ChartPanel을 사용합니다. 아래 코드는 차트를 포함하는 ChartPanel 인스턴스를 생성하고, 이를 JFrame에 추가하여 차트를 표시하는 예시입니다.

ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

JFrame frame = new JFrame("High Low Bar Chart");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(chartPanel);
frame.pack();
frame.setVisible(true);

위 코드에서는 차트를 담을 ChartPanel을 생성하고, 이를 JFrame에 추가하여 차트를 표시합니다. JFrame의 타이틀을 “High Low Bar Chart”로 지정하고, 차트 패널의 크기를 설정한 후에는 JFrame을 표시합니다.

결론

JFreeChart를 사용하면 Java에서 High Low Bar 차트를 쉽게 그릴 수 있습니다. 위에서 설명한 예시 코드를 참고하여 원하는 데이터와 설정을 적용하면 자신만의 High Low Bar 차트를 만들 수 있습니다.

더 자세한 정보와 다양한 차트 타입에 대한 예시 코드는 JFreeChart 공식 문서를 참고하시기 바랍니다.

참고 자료: