본문 바로가기

web/JSP

JSP JFreeChart 사용하기 - PIE

나중에 그래프를 이용한 실시가나 통계표나 월결산 같은걸 만들어 봐야겠다.ㅎ

출처 : http://micropilot.tistory.com/82

출처에 나와 있는것을 DB에 연동 시킨것에 불과하다.

1. 먼저 해당 프로젝트의 web-inf->lib 에 jfreechart.jar , jcommon.jar 파일을 넣는다.


2. 그림을 저장한다음 웹에 띄우는 방식인데, 자바라이블러리를 활용하여 새창으로 띄우는것과 웹상에서 제작한다음 이미지로 띄우는것이 있다. 나는 웹에서 이미지로 띄우는 것으로 햇다.

PIEchart.jsp
<%@ page contentType="image/jpeg"%>
<%@ page import = "org.jfree.chart.*" %>
<%@ page import ="chart.*"%>
<%
    ServletOutputStream sos = response.getOutputStream();
    PieChartBean bcb = new PieChartBean(); 
JFreeChart chart = bcb.getPieChart();
ChartUtilities.writeChartAsPNG(sos, chart, 900, 550);
%>

보는바와 같이 contentType 가 이미지로 되어 있는것을 볼수 있다.
현재 나의 프로젝트 디렉토리 상황은 

이렇게 되어 있어서 import시 자신의 프로젝트에 맞게 설정해야 한다. 

PieChartBean.java

package chart;

import org.jfree.chart.*;
import org.jfree.data.category.*;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.chart.plot.*;

public class PieChartBean {

public static void main(String arg[]){
PieChartBean bcb = new PieChartBean();
JFreeChart chart = bcb.getPieChart();
ChartFrame frame1=new ChartFrame("Pie Chart",chart);
frame1.setSize(800,450);  
frame1.setVisible(true);
}

public JFreeChart getPieChart() {
   DefaultPieDataset dataset = new DefaultPieDataset();
        for(int i =0; i<10; i++){
            int n = (int) (Math.random() * 10) + 1;
            dataset.setValue(""+(i+1), n);
        }
JFreeChart chart = ChartFactory.createPieChart3D("PieChart using JFreeChart", dataset, true,true, false);
chart.setBackgroundPaint(Color.white);
return chart;
}
}

main부분을 보면 그림 파일의 싸이즈및 JFreeChart 의 객체 생성을 하는것을 볼수 있다.
지금 그리려는 차트는 PIE이기 때문에 PieChartBean()을 통해서 생성하는것을 볼수 있다.
다른 차트를 원하시는 분은 http://blog.naver.com/asus1984/120053757862 요기를 참조하기 바란다.

현재는 랜덤값을 통해서 차트를 보여주는 간단한 형식으로 했다.

JFreeChart chart = ChartFactory.createPieChart3D("PieChart using JFreeChart", dataset, true,true, false);
요 부분이 가장 중요하다. - 차트의 형식에 따라 파라미터가 달라진다. (중요!)

ChartFactory.createPieChart3D("차트제목", 값이 들어있는 데이터셋, true,true, false);
(뒤의 세개의 인자는 사실 모르겠다;;)

데이터 셋은 DefaultPieDataset dataset = new DefaultPieDataset(); 으로 선언되며
 dataset.setValue("목록이름", 값); 으로 넣어주면 된다. 값은 int 형이다.


마지막으로 최종적으로 보여주는 부분이다.

chartView.jsp

<%@ page contentType="text/html;charset=euc-kr"%>

<html>
<head><title>JFreeChart with JSP example</title></head> 
<body>

<img src="PIEchart.jsp">

</center>
</body>
</html>

img 태그를 이용하여 차트jsp를 불러오는 것을 볼수 있다. 결국 chartView ->PIEchart.jsp->PieChartBean.java을 불러오는 형식이다. chartView에 추가함으로써 웹페이지를 꾸밀수 있다. 



-차트의 형식이 많기 때문에 하나씩 올려보이겠습니다. 

'web > JSP' 카테고리의 다른 글

JSP java.lang.NullPointerException  (0) 2010.11.08
JSP Statement PreparedStatement  (0) 2010.11.03
JSP 태그 클라우드 달았어요!  (2) 2010.10.28
JSP Cannot start server. Server instance is not configured.  (0) 2010.10.27
JSP script submit  (0) 2010.10.25