网辉 @ 2005-01-19 17:12
柱状图 bar.jsp 柱状图1 bar1.jsp 柱状图2 bar2.jsp 3D柱状图 bar3d.jsp
柱状图 bar.jsp :
<%@ page contentType="text/html;charset=GBK"%> <%@ page import="org.jfree.chart.ChartFactory, org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet.ServletUtilities, org.jfree.data.DefaultCategoryDataset"%> <%@ page import = "java.util.Iterator, org.jfree.data.time.*, java.awt.Font"%> <% Font font=new Font("黑体",Font.TRUETYPE_FONT, 12); DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(300, "", "超员"); dataset.addValue(200, "", "超速"); dataset.addValue(500, "", "随意停车上下客"); dataset.addValue(340, "", "右侧超车"); dataset.addValue(280, "", "客货混装"); dataset.addValue(500, "", "违法装载"); dataset.addValue(128, "", "疲劳驾驶"); dataset.addValue(263, "", "违反分道行驶原则行驶"); dataset.addValue(412, "", "车牌证失效"); dataset.addValue(380, "", "其他违法行为");
JFreeChart chart = ChartFactory.createBarChart3D("查处违法信息统计图", "违法信息", "数量", dataset, PlotOrientation.VERTICAL, false, false, false); //chart.setTitle("网站访问统计表",font);//可选,设置图片标题 String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session); String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename; %> <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
|
柱状图1 bar1.jsp
<%@ page contentType="text/html;charset=GBK"%> <%@ page import="java.awt.Color, java.awt.Font, org.jfree.chart.ChartFactory, org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet.ServletUtilities, org.jfree.data.CategoryDataset,org.jfree.data.DatasetUtilities, org.jfree.chart.plot.CategoryPlot, org.jfree.chart.axis.CategoryAxis, org.jfree.chart.axis.ValueAxis, org.jfree.chart.renderer.BarRenderer3D, org.jfree.chart.labels.StandardCategoryLabelGenerator, org.jfree.chart.axis.AxisLocation"%> <% double[][] data = new double[][] {{672, 766, 223, 540, 126},{325, 521, 210, 340, 106},{332, 256, 523, 240, 526}}; String[] rowKeys = {"苹果","梨子","葡萄"}; String[] columnKeys = {"北京","上海","广州","成都","深圳"}; CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data); Font font=new Font("黑体",Font.TRUETYPE_FONT, 12); JFreeChart chart = ChartFactory.createBarChart3D("水果销量图统计", null, null, dataset, PlotOrientation.VERTICAL, true,false,false); chart.setBackgroundPaint(Color.white); CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setVerticalCategoryLabels(false); domainAxis.setTickLabelFont(font); plot.setDomainAxis(domainAxis);
ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setTickLabelFont(font); //设置最高的一个 Item 与图片顶端的距离 rangeAxis.setUpperMargin(0.15); //设置最低的一个 Item 与图片底端的距离 rangeAxis.setLowerMargin(0.15); plot.setRangeAxis(rangeAxis);
BarRenderer3D renderer = new BarRenderer3D(); renderer.setBaseOutlinePaint(Color.black); //设置 Wall 的颜色 renderer.setWallPaint(Color.gray); //设置每种水果代表的柱的颜色 renderer.setSeriesPaint(0, new Color(0, 0, 255)); renderer.setSeriesPaint(1, new Color(0, 100, 255)); renderer.setSeriesPaint(2, Color.green); //设置每个地区所包含的平行柱的之间距离 renderer.setItemMargin(0.1); //显示每个柱的数值,并修改该数值的字体属性 //renderer.setItemLabelGenerator(new StandardCategoryLabelGenerator()); //renderer.setItemLabelsVisible(true); plot.setRenderer(renderer);
//设置柱的透明度 plot.setForegroundAlpha(0.6f); //设置地区、销量的显示位置 plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT); plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session); String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename; %> <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
|
柱状图2 bar2.jsp
<%@ page contentType="image/jpeg;charset=GBK"%> <%@ page import = "java.io.*"%> <%@ page import = "java.awt.*"%> <%@ page import = "org.jfree.data.*"%> <%@ page import = "org.jfree.chart.*"%> <%@ page import = "org.jfree.chart.plot.*"%> <%@ page import = "org.jfree.chart.ChartUtilities"%> <%@ page import = "org.jfree.chart.title.TextTitle"%>
<html> <head> <title> TestChartDemo </title> </head> <body bgcolor="#ffffff"> <% //设置数据集 DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(2, "0-60分", "一班"); dataset.addValue(34, "61-80分", "一班"); dataset.addValue(12, "81-100分", "一班"); dataset.addValue(1, "0-60分", "二班"); dataset.addValue(40, "61-80分", "二班"); dataset.addValue(9, "81-100分", "二班"); dataset.addValue(0, "0-60分", "三班"); dataset.addValue(23, "61-80分", "三班"); dataset.addValue(32, "81-100分", "三班"); dataset.addValue(3, "0-60分", "四班"); dataset.addValue(33, "61-80分", "四班"); dataset.addValue(4, "81-100分", "四班"); dataset.addValue(4, "0-60分", "五班"); dataset.addValue(37, "61-80分", "五班"); dataset.addValue(11, "81-100分", "五班"); //创建柱状图 JFreeChart chart = ChartFactory.createBarChart3D( "", // 图表标题 "班级", // 目录轴的显示标签 "分数", // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是false) false, // 是否生成工具 false // 是否生成URL链接 ); //设置标题 Font font = new Font("黑体", Font.CENTER_BASELINE, 20); TextTitle title = new TextTitle("各班学生成绩统计"); title.setFont(font); //统计图片的底色 chart.setBackgroundPaint(java.awt.Color.white); chart.setTitle(title); //取得response的OutputStream OutputStream ostream = response.getOutputStream(); //设定图片的宽为400,高为300,并输出至ostream ChartUtilities.writeChartAsJPEG(ostream, chart, 400, 300); ostream.flush(); ostream.close(); %> </body> </html>
|
3D柱状图 bar3d.jsp
<%@ page contentType="text/html;charset=GBK"%> <%@ page import = "org.jfree.chart.ChartFactory, org.jfree.chart.ChartPanel, org.jfree.chart.JFreeChart, org.jfree.chart.StandardLegend, org.jfree.chart.axis.CategoryAxis, org.jfree.chart.axis.CategoryLabelPositions, org.jfree.chart.plot.CategoryPlot, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet.ServletUtilities, org.jfree.data.CategoryDataset, org.jfree.data.DatasetUtilities "%> <% double[][] data = new double[][] {{10.0, 4.0, 15.0, 14.0}, {-5.0, -7.0, 14.0, -3.0}, {6.0, 17.0, -12.0, 7.0}, {7.0, 15.0, 11.0, 0.0}, {-8.0, -6.0, 10.0, -9.0}, {9.0, 8.0, 0.0, 6.0}, {-10.0, 9.0, 7.0, 7.0}, {11.0, 13.0, 9.0, 9.0}, {-3.0, 7.0, 11.0, -10.0}}; CategoryDataset dataset= DatasetUtilities.createCategoryDataset("Series ", "Category ", data); JFreeChart chart = ChartFactory.createBarChart3D( "3D Bar Chart Demo", // chart title "Category", // domain axis label "Value", // range axis label dataset, // data PlotOrientation.VERTICAL, // orientation true, // include legend true, // tooltips false // urls );
CategoryPlot plot = chart.getCategoryPlot(); CategoryAxis axis = plot.getDomainAxis(); axis.setCategoryLabelPositions( CategoryLabelPositions.createUpRotationLabelPositions(Math.PI/ 8.0) );
String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session); String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename; %> <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
|
注意以上代码,均在:jfreechart-0.9.20.jar、jcommon-0.9.5.jar下调试通过! web.xml配置servlet代码:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <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>
|
|