- <%@ page language="java" pageEncoding="UTF-8"%>
- <%@ page import="java.awt.*"%>
- <%@ page import="java.text.*"%>
- <%@ page import="org.jfree.chart.*"%>
- <%@ page import="org.jfree.chart.axis.*"%>
- <%@ page import="org.jfree.chart.plot.*"%>
- <%@ page import="org.jfree.chart.title.*"%>
- <%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
- <%@ page
- import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"%>
- <%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
- <%@ page import="org.jfree.chart.renderer.category.StackedBarRenderer"%>
- <%@ page import="org.jfree.chart.title.TextTitle"%>
- <%@ page import="org.jfree.data.category.CategoryDataset"%>
- <%@ page import="org.jfree.data.general.DatasetUtilities"%>
- <%@ page import="java.io.*"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>My JSP 'test.jsp' starting page</title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="refresh" content="5">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- </head>
- <body>
- <%
- double[][] data = new double[][] { { 20, 30, 25, 50, 125 },
- { 30, 50, 45, 64, 190 } };
- String[] rowKeys = { "营收", "额外" };
- String[] columnKeys = { "分店A", "分店B", "分店C", "分店D", "总店" };
- CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
- rowKeys, columnKeys, data);
- JFreeChart chart = ChartFactory.createStackedBarChart("营业图", // 图表标题
- "", // 目录轴的显示标签
- "", // 数值轴的显示标签
- dataset, // 数据集
- PlotOrientation.VERTICAL, // 图表方向:水平、垂直
- true, // 是否显示图例(对于简单的柱状图必须是false)
- false, // 是否生成工具
- false // 是否生成URL链接
- );
- LegendTitle legend = chart.getLegend(0);
- legend.setItemFont(new Font("宋体", Font.BOLD, 14));
- chart.setTextAntiAlias(false);
- chart.setBackgroundPaint(Color.WHITE);
- chart.setTitle(new TextTitle("营业图", new Font("隶书", Font.BOLD, 25)));
- Font labelFont = new Font("SansSerif", Font.TRUETYPE_FONT, 12);
- CategoryPlot plot = chart.getCategoryPlot();
- plot.setRangeGridlinesVisible(true);
- plot.setRangeGridlinePaint(Color.gray);
- NumberAxis vn = (NumberAxis) plot.getRangeAxis();
- vn.setUpperBound(500);
- DecimalFormat df = new DecimalFormat("000");
- vn.setNumberFormatOverride(df); // 数据轴数据标签的显示格式
- CategoryAxis domainAxis = plot.getDomainAxis();
- domainAxis.setLabelFont(labelFont);// 轴标题
- domainAxis.setTickLabelFont(labelFont);// 轴数值
- domainAxis.setMaximumCategoryLabelWidthRatio(0.6f);// 横轴上的 Lable 是否完整显示
- plot.setDomainAxis(domainAxis);
- ValueAxis rangeAxis = plot.getRangeAxis();
- rangeAxis.setLabelFont(labelFont);
- rangeAxis.setTickLabelFont(labelFont);
- rangeAxis.setUpperMargin(0.15);
- rangeAxis.setLowerMargin(0.15);
- plot.setRangeAxis(rangeAxis);
- StackedBarRenderer renderer = new StackedBarRenderer();
- renderer.setMaximumBarWidth(0.1);
- renderer.setMinimumBarLength(0.1);
- renderer.setBaseOutlinePaint(Color.BLACK);
- renderer.setDrawBarOutline(true);
- renderer.setSeriesPaint(0, new Color(255, 102, 102));
- renderer.setSeriesPaint(1, new Color(51, 153, 51));
- renderer.setItemMargin(0.4);
- renderer
- .setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
- renderer.setBaseItemLabelsVisible(true);
- plot.setRenderer(renderer);
- StandardEntityCollection sec = new StandardEntityCollection();
- ChartRenderingInfo info = new ChartRenderingInfo(sec);
- PrintWriter w = new PrintWriter(out);//输出MAP信息
- //700是图片长度,500是图片高度
- String filename = ServletUtilities.saveChartAsJPEG(chart, 700, 500,
- info, session);
- ChartUtilities.writeImageMap(w, "map0", info, false);
- String graphURL = request.getContextPath()
- + "/DisplayChart?filename=" + filename;
- %>
- <P ALIGN="CENTER">
- <img src="<%=graphURL%>" width=700 height=500 border=0 usemap="#map0">
- </P>
- </body>
- </html>
web.xml配置文件如下:
- <?xml version="1.0" encoding="GB18030"?>
- <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- <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>/DisplayChart</url-pattern>
- </servlet-mapping>
- </web-app>
不用做任何修改,启动服务器后,即可运行!