随笔-57  评论-202  文章-17  trackbacks-0
      这个范例说明如何用JFreeChart画简单的柱状图,下面是一个JSP的简单范例:

<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="java.awt.*, java.text.*, java.util.*" %>
<%@ page import="org.jfree.chart.*" %>
<%@ page import="org.jfree.chart.axis.*" %>
<%@ page import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator" %>
<%@ page import="org.jfree.chart.plot.*" %>
<%@ page import="org.jfree.chart.renderer.*" %>
<%@ page import="org.jfree.chart.servlet.ServletUtilities" %>
<%@ page import="org.jfree.data.DefaultCategoryDataset" %>
<%@ page import="org.jfree.ui.TextAnchor" %>

<%
  
//The data for the bar chart
  double[] data = {85156179.5211123};
  
//The labels for the bar chart
  String[] labels = {"Mon""Tue""Wed""Thu""Fri"};
  
  DefaultCategoryDataset dataset 
= new DefaultCategoryDataset();
  
for (int i = 0; i < data.length; i++{
    dataset.addValue(data[i], 
null, labels[i]);
  }

  
  JFreeChart chart 
= ChartFactory.createBarChart3D("Weekly Server Load""Work Week 25""MBytes", dataset, PlotOrientation.VERTICAL, falsefalsefalse);
  chart.setBackgroundPaint(
new Color(0xE1E1E1));
  
  CategoryPlot plot 
= chart.getCategoryPlot();
  
  
// 设置Y轴显示整数
  NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
  rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
  
  CategoryAxis domainAxis 
= plot.getDomainAxis();
  
//设置距离图片左端距离
  domainAxis.setLowerMargin(0.05);
  
  BarRenderer3D renderer 
= new BarRenderer3D();
  
//设置柱的颜色
  renderer.setSeriesPaint(0new Color(0xff00));
  plot.setRenderer(renderer);
  
  String filename 
= ServletUtilities.saveChartAsPNG(chart, 300280null, session);
  String graphURL 
= request.getContextPath() + "/displayChart?filename=" + filename;
%>
<html>
<body topmargin="5" leftmargin="5" rightmargin="0">
<div style="font-size:18pt; font-family:verdana; font-weight:bold">
    3D Bar Chart
</div>
<br>
<img src="<%= graphURL %>" border=0>
</body>
</html>


      画出来的图:

displayChart.JPG

      和ChartDirector画出来的图做一个比较:

threedbar.JPG

posted on 2005-06-14 18:40 小米 阅读(10664) 评论(7)  编辑  收藏 所属分类: Java

评论:
# re: 用JFreeChart画柱状图的范例 2005-12-05 16:43 | 郭柯
<%@ page import="org.jfree.ui.TextAnchor" %>
这个包找不到阿
plot.setRenderer(renderer);这个方法也报错
斑竹给讲解以下吧,写了
现在着急作报表
不会阿
郁闷死了
  回复  更多评论
  
# re: 用JFreeChart画柱状图的范例 2007-01-30 14:08 | flysky
谢谢楼主
正在写JFreeChart与ChartDirector的比较,谢谢你的好文章  回复  更多评论
  
# re: 用JFreeChart画柱状图的范例 2007-03-16 10:36 | wang
有这个异常
java.lang.IllegalArgumentException: Null 'key' argument.

  回复  更多评论
  
# re: 用JFreeChart画柱状图的范例 2007-04-17 17:06 | pyrgz
有这个异常
java.lang.IllegalArgumentException: Null 'key' argument.
  回复  更多评论
  
# re: 用JFreeChart画柱状图的范例 2007-04-20 14:24 | MrBao
for (int i = 0; i < data.length; i++) {
dataset.addValue(data[i], null, labels[i]);//这句改null 为 ""
}
  回复  更多评论
  
# re: 用JFreeChart画柱状图的范例[未登录] 2008-10-23 16:47 | navy
ACTION中怎么写的?  回复  更多评论
  
# re: 用JFreeChart画柱状图的范例[未登录] 2009-05-04 13:35 | cheng
怎样可以让图表显示中文(比如你那里的Mon,Tue,Wed...)  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: