JFreeChart는 Java로 개발된 오픈 소스 차트 라이브러리입니다. 이 라이브러리를 사용하여 High Low 차트를 그릴 수 있습니다. High Low 차트는 주식 가격 등의 변동을 보여주기 위해 사용되며, 최고가와 최저가를 표시하는 선과 그 사이의 변동을 표시하는 바로 이루어져 있습니다.
JFreeChart 라이브러리 추가하기
먼저 JFreeChart 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음과 같이 의존성을 추가합니다:
<dependencies>
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.3</version>
</dependency>
</dependencies>
Maven을 사용하지 않는다면, JFreeChart의 최신 버전을 공식 웹사이트에서 다운로드하여 사용할 수 있습니다.
High Low 차트 데이터 생성하기
High Low 차트를 그리기 위해서는 데이터셋(DataSet)이 필요합니다. JFreeChart에는 여러 종류의 데이터셋 클래스가 제공됩니다. 여기서는 DefaultHighLowDataset
클래스를 사용하여 데이터셋을 생성해보겠습니다.
import org.jfree.data.xy.DefaultHighLowDataset;
// High Low 데이터셋 생성
double[] highValues = {10, 15, 20, 18, 25};
double[] lowValues = {5, 10, 12, 8, 15};
double[] openValues = {8, 12, 16, 14, 22};
double[] closeValues = {9, 14, 18, 16, 24};
double[] volumeValues = {100, 150, 200, 180, 250};
DefaultHighLowDataset dataset = new DefaultHighLowDataset("Stock Data", highValues, lowValues, openValues, closeValues, volumeValues);
위 코드에서는 최고가(highValues
), 최저가(lowValues
), 시가(openValues
), 종가(closeValues
), 거래량(volumeValues
) 데이터를 각각 배열로 생성하고 DefaultHighLowDataset
클래스를 사용하여 데이터셋을 생성하였습니다.
High Low 차트 그리기
High Low 차트를 그리기 위해서는 HighLowRenderer
클래스와 ChartFactory
클래스를 사용합니다. 다음은 High Low 차트를 그리고 이미지로 저장하는 예제 코드입니다.
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.HighLowRenderer;
import org.jfree.ui.ApplicationFrame;
import java.io.File;
import java.io.IOException;
public class HighLowChartExample extends ApplicationFrame {
public HighLowChartExample(String title) {
super(title);
// High Low 차트 생성
JFreeChart chart = ChartFactory.createHighLowChart(
"Stock Price", // 차트 제목
"Date", // x축 레이블
"Price", // y축 레이블
dataset, // 데이터셋
PlotOrientation.VERTICAL, // 차트 방향
true, // 범례 표시 여부
true, // 도구 팁 표시 여부
false // URL 생성 여부
);
// High Low Renderer 설정
XYPlot plot = (XYPlot) chart.getPlot();
HighLowRenderer renderer = (HighLowRenderer) plot.getRenderer();
renderer.setDrawOpenTicks(true);
renderer.setDrawCloseTicks(true);
// 차트 이미지 파일로 저장
try {
ChartUtilities.saveChartAsPNG(new File("highlow_chart.png"), chart, 800, 600);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
HighLowChartExample example = new HighLowChartExample("High Low Chart Example");
example.pack();
example.setVisible(true);
}
}
위 코드에서는 HighLowChartExample
클래스를 생성하여 ApplicationFrame
을 상속받은 차트 창을 생성합니다. ChartFactory
클래스의 createHighLowChart
메서드를 사용하여 High Low 차트를 생성합니다. 그 후 ChartUtilities
클래스를 사용하여 차트를 이미지 파일로 저장합니다. 차트 제목, x축 레이블, y축 레이블 등 필요한 설정은 해당 메서드의 매개변수로 전달할 수 있습니다.
실행 결과
위 코드를 실행하면 High Low 차트를 표시하는 창이 생성되며, 차트가 highlow_chart.png
파일로 저장됩니다.
결론
JFreeChart를 사용하여 High Low 차트를 그려보았습니다. JFreeChart는 다양한 종류의 차트를 그릴 수 있는 강력한 라이브러리입니다. High Low 차트를 사용하여 주식 가격 등의 변동을 시각적으로 표현할 수 있습니다. 이를 통해 데이터의 패턴을 파악하고 투자 결정을 도와줄 수 있습니다.
해당 코드와 더 자세한 예제는 JFreeChart 공식 웹사이트를 참조하시기 바랍니다.