JSP中使用JFreeChart

只需要一个JSP文件就可实现(五秒钟自动刷新一次,你可以修改)。


Jsp代码 
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ page import="java.awt.*"%>  
  3. <%@ page import="java.text.*"%>  
  4. <%@ page import="org.jfree.chart.*"%>  
  5. <%@ page import="org.jfree.chart.axis.*"%>  
  6. <%@ page import="org.jfree.chart.plot.*"%>  
  7. <%@ page import="org.jfree.chart.title.*"%>  
  8. <%@ page import="org.jfree.chart.servlet.ServletUtilities"%>  
  9. <%@ page  
  10.     import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"%>  
  11. <%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>  
  12. <%@ page import="org.jfree.chart.renderer.category.StackedBarRenderer"%>  
  13. <%@ page import="org.jfree.chart.title.TextTitle"%>  
  14. <%@ page import="org.jfree.data.category.CategoryDataset"%>  
  15. <%@ page import="org.jfree.data.general.DatasetUtilities"%>  
  16. <%@ page import="java.io.*"%>  
  17. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  18. <html>  
  19.     <head>  
  20.         <title>My JSP 'test.jsp' starting page</title>  
  21.         <meta http-equiv="pragma" content="no-cache">  
  22.         <meta http-equiv="cache-control" content="no-cache">  
  23.         <meta http-equiv="refresh" content="5">  
  24.         <meta http-equiv="expires" content="0">  
  25.         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  26.         <meta http-equiv="description" content="This is my page">  
  27.     </head>  
  28.     <body>  
  29.         <%  
  30.             double[][] data = new double[][] { { 20302550125 },  
  31.                     { 30504564190 } };  
  32.             String[] rowKeys = { "营收""额外" };  
  33.             String[] columnKeys = { "分店A""分店B""分店C""分店D""总店" };  
  34.             CategoryDataset dataset = DatasetUtilities.createCategoryDataset(  
  35.                     rowKeys, columnKeys, data);  
  36.             JFreeChart chart = ChartFactory.createStackedBarChart("营业图", // 图表标题  
  37.                     "", // 目录轴的显示标签  
  38.                     "", // 数值轴的显示标签  
  39.                     dataset, // 数据集  
  40.                     PlotOrientation.VERTICAL, // 图表方向:水平、垂直  
  41.                     true, // 是否显示图例(对于简单的柱状图必须是false)  
  42.                     false, // 是否生成工具  
  43.                     false // 是否生成URL链接  
  44.                     );  
  45.             LegendTitle legend = chart.getLegend(0);  
  46.             legend.setItemFont(new Font("宋体", Font.BOLD, 14));  
  47.             chart.setTextAntiAlias(false);  
  48.             chart.setBackgroundPaint(Color.WHITE);  
  49.             chart.setTitle(new TextTitle("营业图", new Font("隶书", Font.BOLD, 25)));  
  50.             Font labelFont = new Font("SansSerif", Font.TRUETYPE_FONT, 12);  
  51.             CategoryPlot plot = chart.getCategoryPlot();  
  52.             plot.setRangeGridlinesVisible(true);  
  53.             plot.setRangeGridlinePaint(Color.gray);  
  54.             NumberAxis vn = (NumberAxis) plot.getRangeAxis();  
  55.             vn.setUpperBound(500);  
  56.             DecimalFormat df = new DecimalFormat("000");  
  57.             vn.setNumberFormatOverride(df); // 数据轴数据标签的显示格式  
  58.             CategoryAxis domainAxis = plot.getDomainAxis();  
  59.             domainAxis.setLabelFont(labelFont);// 轴标题  
  60.             domainAxis.setTickLabelFont(labelFont);// 轴数值  
  61.             domainAxis.setMaximumCategoryLabelWidthRatio(0.6f);// 横轴上的 Lable 是否完整显示  
  62.             plot.setDomainAxis(domainAxis);  
  63.             ValueAxis rangeAxis = plot.getRangeAxis();  
  64.             rangeAxis.setLabelFont(labelFont);  
  65.             rangeAxis.setTickLabelFont(labelFont);  
  66.             rangeAxis.setUpperMargin(0.15);  
  67.             rangeAxis.setLowerMargin(0.15);  
  68.             plot.setRangeAxis(rangeAxis);  
  69.             StackedBarRenderer renderer = new StackedBarRenderer();  
  70.             renderer.setMaximumBarWidth(0.1);  
  71.             renderer.setMinimumBarLength(0.1);  
  72.             renderer.setBaseOutlinePaint(Color.BLACK);  
  73.             renderer.setDrawBarOutline(true);  
  74.             renderer.setSeriesPaint(0, new Color(255102102));  
  75.             renderer.setSeriesPaint(1, new Color(5115351));  
  76.             renderer.setItemMargin(0.4);  
  77.             renderer  
  78.                     .setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());  
  79.             renderer.setBaseItemLabelsVisible(true);  
  80.             plot.setRenderer(renderer);  
  81.             StandardEntityCollection sec = new StandardEntityCollection();  
  82.             ChartRenderingInfo info = new ChartRenderingInfo(sec);  
  83.             PrintWriter w = new PrintWriter(out);//输出MAP信息   
  84.             //700是图片长度,500是图片高度  
  85.             String filename = ServletUtilities.saveChartAsJPEG(chart, 700500,  
  86.                     info, session);  
  87.             ChartUtilities.writeImageMap(w, "map0", info, false);  
  88.             String graphURL = request.getContextPath()  
  89.                     + "/DisplayChart?filename=" + filename;  
  90.         %>  
  91.         <P ALIGN="CENTER">  
  92.             <img src="<%=graphURL%>" width=700 height=500 border=0 usemap="#map0">  
  93.         </P>  
  94.     </body>  
  95. </html>  


web.xml配置文件如下: 
Xml代码   收藏代码
  1. <?xml version="1.0" encoding="GB18030"?>  
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.     <welcome-file-list>  
  7.         <welcome-file>index.jsp</welcome-file>  
  8.     </welcome-file-list>  
  9.     <servlet>  
  10.         <servlet-name>DisplayChart</servlet-name>  
  11.         <servlet-class>  
  12.             org.jfree.chart.servlet.DisplayChart  
  13.         </servlet-class>  
  14.     </servlet>  
  15.     <servlet-mapping>  
  16.         <servlet-name>DisplayChart</servlet-name>  
  17.         <url-pattern>/DisplayChart</url-pattern>  
  18.     </servlet-mapping>  
  19. </web-app>  


不用做任何修改,启动服务器后,即可运行!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值