1. 程式人生 > >Java程式設計中JFreeChart圖表繪製類庫巧妙利用JSP實現頁面統計圖

Java程式設計中JFreeChart圖表繪製類庫巧妙利用JSP實現頁面統計圖

在這裡插入圖片描述
1 開發環境:
1、eclipse(可替換)2、jfreechart-1.0.19
2 說明:
(1) source目錄:為 jfreechart的原始碼目錄;不會的主要看這裡。因為他的文件是收費的。(2) lib目錄:為包目錄,我們需要關注的包為 jfreechart-1.0.10.jar、 gnujaxp.jar和 jcommon-1.0.13.jar這三個包;(3)根目錄下的 jfreechart-1.0.10-demo.jar是例子程式,大家雙擊後可看到其中有很多例子的執行結果。
3 JavaWeb開發流程
3.1 匯入jar包將jfreechart-1.0.19/lib下面所有jar包匯入到“/WEB-INF/lib”目錄下3.2 修改配置檔案在 web.xml檔案中增加如下配置,儘量配置在其他優先順序不高的servlet配置前面:

DisplayChart

org.jfree.chart.servlet.DisplayChart



DisplayChart
/DisplayChart

3.3 編寫jsp檔案

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

<%@ page import=“org.jfree.data.general.DefaultPieDataset” %>
<%@ page import=“org.jfree.chart.ChartFactory” %>
<%@ page import=“org.jfree.chart.JFreeChart” %>
<%@ page import=“org.jfree.chart.servlet.*” %>
<%@ page import=“org.jfree.chart.StandardChartTheme” %>
<%@ page import=“java.awt.Font” %>
<%@page import=“org.jfree.chart.servlet.ServletUtilities”%>
<%@ page import=“org.jfree.chart.plot.PlotOrientation”%>
<%@ page import=“org.jfree.data.category.DefaultCategoryDataset”%>

資料分析 <% DefaultPieDataset dpd = new DefaultPieDataset(); dpd.setValue("管理人員", 25); dpd.setValue("市場人員", 25); dpd.setValue("開發人員", 45); dpd.setValue("其他人員", 10); //這一段是防止亂碼使用的 StandardChartTheme standardChartTheme=new StandardChartTheme("CN"); //建立主題樣式 standardChartTheme.setExtraLargeFont(new Font("隸書",Font.BOLD,20)); //設定標題字型 standardChartTheme.setRegularFont(new Font("宋書",Font.PLAIN,15)); //設定圖例的字型 standardChartTheme.setLargeFont(new Font("宋書",Font.PLAIN,15)); //設定軸向的字型 ChartFactory.setChartTheme(standardChartTheme); //應用主題樣式 JFreeChart chart = ChartFactory.createPieChart("某公司組織結構圖",dpd, true, false, false); String fileName = ServletUtilities.saveChartAsPNG(chart,800,600,session); //ServletUtilities是面向web開發的工具類,返回一個字串檔名,檔名自動生成,生成好的圖片會自動放 在伺服器 (tomcat)的臨時檔案下(temp)String url = request.getContextPath() + "/DisplayChart? filename=" + fileName; //根據檔名去臨時目錄下尋找該圖片,這裡的/DisplayChart路徑要與配置檔案裡使用者自定義的 一致%> <% DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(0.2, "廣州", "豬肉"); dataset.addValue(0.4, "廣州", "牛肉"); dataset.addValue(0.1, "廣州", "雞肉"); dataset.addValue(0.1, "廣州", "魚肉"); // 建立主題樣式 StandardChartTheme standardChartTheme1 = new StandardChartTheme("CN"); // 設定標題字型 standardChartTheme1.setExtraLargeFont(new Font("隸書", Font.BOLD, 20)); // 設定圖例的字型 standardChartTheme1.setRegularFont(new Font("宋書", Font.PLAIN, 15)); // 設定軸向的字型 standardChartTheme1.setLargeFont(new Font("宋書", Font.PLAIN, 15)); // 應用主題樣式 ChartFactory.setChartTheme(standardChartTheme1);
 JFreeChart chart1 = ChartFactory.createBarChart3D("
                   肉類銷量統計圖", 
                   "肉類", 
                   "銷量百分比(%)",
                   dataset,
                   PlotOrientation.VERTICAL, 
                                         false,
                                         false,
                                                                      
                                         false);
 String filename = ServletUtilities.saveChartAsPNG(chart1, 1200, 300, null, session);
 String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
 
 System.out.println(graphURL + "\n"+ filename); %>

<img src="<%= graphURL %>“width=1200 height=300 border=0 usemap=”#<%= filename %>">

4 效果圖 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181206091020670.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E2OTg0MDIx,size_16,color_FFFFFF,t_70) 文章來自:https://www.itjmd.com/news/show-4273.html