天天看点

用jfreechat编写图形化统计数据程序(实例)

鐢╦freechat缂栧啓鍥惧舰鍖栫粺璁℃暟鎹▼搴?瀵绘壘ireport鍥惧舰棰滆壊瑙e喅鏂规鏃舵壘鍒扮殑鍏充簬jfeechart鍥惧舰鍖栫▼搴忥紝瑙夊緱涓嶉敊锛岀壒鎰忕暀涓嬫潵銆?jfreechart锛屽埌http://www.jfree.org/涓嬭浇鏈€鏂扮殑銆?涓€銆佸湪web.xml鏂囦欢涓坊鍔狅細

<servlet>

<servlet-name>DisplayChart</servlet-name>

聽 <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>DisplayChart</servlet-name>

聽 <url-pattern>/servlet/DisplayChart</url-pattern>

</servlet-mapping>

浜屻€佽В鍘嬩笅杞界殑jfreechar宸ュ叿鍖咃紝灏嗚В鍘嬪悗鐨刯freechar涓媗ib鐩綍涓殑浜斾釜鏂囦欢澶嶅埗鍒颁綘鐨勯」鐩殑WEB-INF/lib涓嬨€?濡備笅杞?jfreechart-1.0.0-rc1.zip

涓夈€佸垱寤烘暟鎹簱涓殑琛?test

鍥涖€丣SP婧愮▼搴忥細

<%@ page contentType="text/html;charset=GBK"%>

<%@ page import="java.sql.*" %>

<%@ page import="java.io.*" %>

<%@ page import="java.awt.*" %>

<%@ page import="org.jfree.chart.*" %>

<%@ page import="org.jfree.chart.plot.*" %>

<%@ page import="org.jfree.chart.servlet.ServletUtilities" %>

<%@ page import="org.jfree.chart.entity.StandardEntityCollection" %>

<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D" %>

<%@ page import="org.jfree.data.category.DefaultCategoryDataset" %>

<%@ page import="org.jfree.data.general.DefaultPieDataset" %>

<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D" %>

<html>

<head><title>Jfree鍥捐〃</title>

<meta http-equiv="Content-Type" content="text/html;charset=gb2312">

</head>

<body>

<div align="cente"><P><font size="4" ><strong><font color="#0099ff">鎷涚敓缁熻淇℃伅</font></strong></font></p>

</div>

<%

聽//璁剧疆鐢熸垚楗肩姸鍥?聽聽聽 int i=0;

聽聽聽 String[] area={"鍗椾含甯?,"闀囨睙甯?,"甯稿窞甯?,"鏃犻敗甯?,"鑻忓窞甯?,"鍗楅€氬競"};

聽聽聽 try{

聽聽聽聽聽聽聽 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

聽聽聽聽聽聽聽 Connection con=DriverManager.getConnection("jdbc:odbc:aaa");

聽聽聽聽聽聽聽 Statement sql=con.createStatement();

聽聽聽聽聽聽聽 ResultSet rs=sql.executeQuery("select * from test");

聽聽聽聽聽聽

聽聽聽聽聽聽聽 //鎸夊湴鍖鸿繘琛岀粺璁?聽聽聽聽聽聽聽 PrintWriter pw=null;

聽聽聽聽聽聽聽 DefaultPieDataset dataset=new DefaultPieDataset();

聽聽聽聽聽聽聽 //璁剧疆鏁版嵁婧?聽聽聽聽聽聽聽 while(rs.next()){

聽聽聽聽聽聽聽聽聽 String dq=rs.getString("dq");

聽聽聽聽聽聽聽聽聽聽 dataset.setValue(area[i],Integer.parseInt(dq));

聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽聽 //娣诲姞鏁版嵁锛屽弬鏁板寘鎷悕绉板拰鏁板€?聽聽聽聽聽聽聽聽聽聽 i++;

聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 rs.close();

聽聽聽聽聽聽聽 sql.close();

聽聽聽聽聽聽聽 con.close();

聽聽聽聽聽聽

聽聽聽聽聽聽聽 JFreeChart chart=ChartFactory.createPieChart("楗煎瀷鍥?,dataset,true,true,true);

聽聽聽聽聽聽聽 chart.setTitle("缁熻鍥?);//璁剧疆鍥剧墖鏍囬

聽聽聽聽聽聽聽 ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());

聽聽聽聽聽聽聽 String filename=ServletUtilities.saveChartAsJPEG(chart,300,200,info,session);

聽聽聽聽聽聽聽 //璁剧疆鐢熸垚鍥剧墖锛屽寘鎷浘鐗囩殑澶у皬锛岄暱搴︽槸300锛屽鏄?00

聽聽聽聽聽聽聽 //out.println(filename);

聽聽聽聽聽聽 session.setAttribute("file_name1",filename);

聽聽聽聽聽聽聽 String URL= request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;

聽聽聽聽聽聽聽 session.setAttribute("file_url1",URL);

聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 catch(SQLException e){

聽聽聽聽聽聽聽聽聽 out.println(e);

聽聽聽聽聽聽 }

聽聽聽聽聽聽聽

聽聽聽聽聽 %><%

聽//鐢熸垚鏌辩姸鍥?聽聽聽聽聽聽聽 try{

聽聽聽聽聽聽聽聽 int j=0;

聽聽聽聽聽聽聽聽 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

聽聽聽聽聽聽聽聽 Connection con=DriverManager.getConnection("jdbc:odbc:aaa");

聽聽聽聽聽聽聽聽 Statement sql=con.createStatement();

聽聽聽聽聽聽聽聽 ResultSet rs=sql.executeQuery("select * from test");

聽聽聽聽聽聽聽聽 DefaultCategoryDataset dataset=new DefaultCategoryDataset();//璁剧疆鏁版嵁婧?

聽聽聽聽聽聽聽聽 while(rs.next()){

聽聽聽聽聽聽聽聽 dataset.addValue(Integer.parseInt(rs.getString("dq")),"瀛︽牎",area[j]);

聽聽聽聽聽聽聽聽 //娣诲姞鏁版嵁锛屽弬鏁板寘鎷悕绉板拰鏁板€?聽聽聽聽聽聽聽聽 j++;

聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽 JFreeChart chart1=ChartFactory.createBarChart3D("缁熻鍥?,"鎷涚敓鍦板尯","鎷涚敓浜烘暟",聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 dataset,PlotOrientation.VERTICAL,false,false,false);

聽聽聽聽聽聽聽聽 CategoryPlot plot=chart1.getCategoryPlot();

聽聽聽聽聽聽

聽聽聽聽聽聽聽聽 BarRenderer3D renderer1=new BarRenderer3D();

聽聽聽聽聽聽

聽聽聽聽聽聽聽聽 renderer1.setItemLabelsVisible(true);//鏄剧ず姣忎釜鏌卞瓙涓婄殑鏁版嵁

聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽 renderer1.setItemMargin(0.1);//璁剧疆姣忎釜鏌卞瓙涔嬮棿鐨勮窛绂?聽聽聽聽聽聽聽聽 plot.setRenderer(renderer1);//璁╀笂闈㈠鏌卞瓙鐨勮缃敓鏁?聽聽聽聽聽聽聽 String filename=ServletUtilities.saveChartAsJPEG(chart1,300,200,session);

聽聽聽聽聽聽聽聽 //鐢熸垚鍥剧墖锛屽寘鎷浘鐗囩殑澶у皬

聽聽聽聽聽聽聽聽 session.setAttribute("file_name2",filename);

聽聽聽聽聽聽聽聽 String URL=request.getContextPath()+"/servlet/DisplayChart?filename="+filename;

聽聽聽聽聽聽聽聽 session.setAttribute("file_url2",URL);

聽聽聽聽聽聽聽聽 }catch(SQLException e){}

%>

<center><img src="<%=session.getAttribute("file_url1")%>" width=300 height=200 #<%=session.getAttribute("file_name1") %>">

<img src="<%=session.getAttribute("file_url2") %>" width=300 height=200 #<%=session.getAttribute("file_name2")%>"></center>

</html>