`
liyanboss
  • 浏览: 141779 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

有热点的JfreeChart柱型图(原创)[转]

阅读更多
实现方式:jsp+javabean
版本 :jfreechart-1.0.8
web-inf:设置
=====================================
<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>/servlet/DisplayChart</url-pattern>
 </servlet-mapping>
======================================
jsp文件:
=========================================================================
<%@ page language="java" contentType="text/html; charset=GBK"
 pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>

<script language="javascript">
function overlib(s){
 document.all.ChartTip.style.display="block";
 top.document.getElementById('ChartTip').innerHTML=s;
 document.all.ChartTip.style.left=document.body.scrollLeft+event.x;
 document.all.ChartTip.style.top=document.body.scrollTop+event.y-20;
}
function nd(s){
 document.all.ChartTip.style.display="none";
}
</script>
<jsp:useBean id="barchart01" scope="session"
 class="com.mdcl.fso.homepage.chart.BarChart01" />
</head>
<body>
<%
 String fileName = barchart01.drawPic(request.getSession(), out);
 String graphURL = request.getContextPath()
   + "/servlet/DisplayChart?filename=" + fileName;
%>
<br />
<img src="<%= graphURL %>" border="0" usemap="#<%=fileName %>" />
<br />
<div id="ChartTip"
 style="position:absolute; font-family:'宋体'; font-size: 12px;line-height: 20px;background-color:#FFFFEC; border: 1px solid #999999;display:none;left:0px;top:1px;">测试显示</div>
</body>
</html>
=========================================================================
java文件
=========================================================================
package com.mdcl.fso.homepage.chart;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import java.awt.Color;
import java.awt.Font;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.urls.StandardCategoryURLGenerator;
import org.jfree.chart.urls.StandardPieURLGenerator;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.labels.*;
import org.jfree.ui.*;
import java.util.*;

import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspWriter;

import com.mdcl.fso.homepage.*;

public class BarChart01 {

 private static DefaultCategoryDataset dataset = new DefaultCategoryDataset();

 private DefaultCategoryDataset getDataset() {// 取数据

  List expense = new ArrayList();
  String sql = "select ftr.organ_id ,fs.dept_name,ftr.subject_id,fft.finance_type_name,ftr.rpt_date ,ftr.rpt_data "
    + "from fso_t_rpt_expense ftr,fso_sdept fs,fso_finance_type fft "
    + "where ftr.type_id='D' "
    + "and ftr.organ_id=fs.dept_id  "
    + "and ftr.rpt_date='2007-08' "
    + "and fft.finance_type_id=ftr.subject_id  "
    + "and ftr.organ_id='1140'";

  expense = DBDao.DbQueryExpense(sql);
  for (int i = 0; i < expense.size(); i++) {
   HashMap param = new HashMap();
   param = (HashMap) expense.get(i);

   double dt = Double.parseDouble(String.valueOf(param.get("rpt_data")));
   String a = (String) param.get("organ");
   String b = (String) param.get("subject");

   dataset.addValue(dt, a, b);
  }

  return dataset;

 }

 public String drawPic(HttpSession session, JspWriter out) {
  String fileName = null;
  JFreeChart chart = ChartFactory.createBarChart3D("2007-08成本统计", "费用类型",
    "金额(单位:元)", getDataset(), PlotOrientation.VERTICAL, true, true,
    true);
  chart.setBackgroundPaint(Color.WHITE);

  CategoryPlot plot = chart.getCategoryPlot();// 获取绘图区

  plot.setBackgroundPaint(new Color(255, 255, 255)); // 设置绘图区背景色

  plot.setRangeGridlinePaint(Color.gray); // 设置水平方向背景线颜色

  plot.setRangeGridlinesVisible(true); // 设置是否显示水平方向背景线,默认值为True

  plot.setDomainGridlinePaint(Color.black); // 设置垂直方向背景线颜色

  // plot.setDomainGridlinesVisible(true); // 设置是否显示垂直方向背景线,默认值为False

  CategoryAxis domainAxis = plot.getDomainAxis();// 获取统计种类轴标题(X轴)

  plot.setDomainAxis(domainAxis);// 添加X轴

  BarRenderer3D renderer = new BarRenderer3D();// 获得BarRenderer3D类的实例,目的是设置柱形的绘制属性

  renderer.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());//

  renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator("index2.jsp"));// 生成热点,用于链接

  renderer.setItemMargin(0.1);// 设置每个组所包含的平行柱的之间距离

  renderer.setSeriesPaint(0, Color.GREEN);// 设置柱子的颜色
  renderer.setSeriesPaint(1, Color.blue);// 设置柱子的颜色

  renderer.setBaseOutlinePaint(Color.BLACK);

  renderer.setWallPaint(Color.gray);// 设置 Wall 的颜色

  renderer.setItemLabelAnchorOffset(10D);// 设置柱形图上的文字偏离值

  renderer.setBaseItemLabelFont(new Font("arial", Font.PLAIN, 10), true);// 设置柱形图上的文字

  renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());// //显示每个柱的数值,并修改该数值的字体属性

  renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));

  renderer.setBaseItemLabelsVisible(true);

  renderer.setMaximumBarWidth(0.050000000000000003D);

  plot.setRenderer(renderer);

  plot.setForegroundAlpha(0.80f);// 设置柱的透明度

  // plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);//设置显示位置

  plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);// 设置显示位置

  try {

   PrintWriter pw = new PrintWriter(out);

   StandardEntityCollection sec = new StandardEntityCollection();
   ChartRenderingInfo info = new ChartRenderingInfo(sec);

   fileName = ServletUtilities.saveChartAsPNG(chart, 640, 400, info,
     session);
   // ChartUtilities.writeChartAsPNG(op,chart, 640, 400, info,true,0);
   ChartUtilities.writeImageMap(pw, fileName, info, true);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  return fileName;

 }

}
  • 大小: 27.5 KB
分享到:
评论
1 楼 赵武艺 2012-07-20  
有没有办法不让jfreechart热点刷新页面?

相关推荐

    JFreeChart柱图

    JFreeChart柱图JFreeChart柱图JFreeChart柱图JFreeChart柱图JFreeChart柱图JFreeChart柱图JFreeChart柱图

    JFREECHART生成的柱图

    JFREECHART柱图

    JFreeChart混合图表演示

    JFreeChart是一款强大的Java库,用于创建各种类型的图表,包括柱状图、饼图、线图、散点图等。在“JFreeChart混合图表演示”中,我们重点探讨如何利用JFreeChart来创建一个包含多种图表类型的混合图表,以提供更丰富...

    JFreeChart画图 饼状图 单组柱状图 多组柱状图 堆积柱状图 折线图

    JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...

    JFreeChart让单组柱子显示不同的颜色的办法

    在Java编程领域,JFreeChart是一个非常流行的图表库,它提供了丰富的图表类型,如柱状图、饼图、线图等,用于数据可视化。当我们需要创建一个柱状图,并且希望在同一组数据中,每根柱子显示不同的颜色时,JFreeChart...

    jfreechart 堆栈柱状图跟折线图结合拼接

    jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707

    JfreeChart-雷达图与导出

    JFreeChart是一款强大的Java图表库,它允许开发者在Java应用程序或网页中创建多种类型的图表,包括雷达图(也称为蜘蛛网图)。本篇将深入探讨如何利用JFreeChart生成雷达图以及相关的数据导出功能。 **雷达图的使用...

    JFreeChart 折线、柱状组合图

    public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 &lt;!--begin 维优特例 --&gt; ...

    JFreeChart+让横轴的标题竖着显示

    在Java编程环境中,JFreeChart库是一个非常强大的工具,用于创建各种类型的图表,如线图、柱状图、饼图等。在处理复杂的数据显示时,可能会遇到横轴标签过于密集,导致阅读困难的问题。本教程将详细介绍如何使用...

    JFreeChart画雷达图

    JFreeChart是一款强大的Java图形库,它允许开发者创建各种复杂的图表,包括我们这里关注的雷达图(也称为蜘蛛网图)。雷达图是一种多轴图表,常用于比较多个变量在同一尺度上的表现,或者展示数据在多个维度上的分布...

    jfreechart绘制的风速风向玫瑰图

    jfreechart绘制的风速风向玫瑰图 jfreechart是Java中一个流行的图表库,它提供了许多种类的图表,包括柱状图、折线图、饼图、雷达图等。本文主要介绍如何使用jfreechart绘制风速风向玫瑰图。 首先,了解jfreechart...

    JFreeChart 饼图,柱图,折线图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼图、柱状图和折线图。在Java应用中,JFreeChart是一个不可或缺的工具,尤其在数据分析、报表生成或可视化数据的场景下。下面我们将深入...

    java使用JFreeChart制作柱形图

    Java 使用 JFreeChart 创建柱形图是一种常见的数据可视化方法,尤其在数据分析和Web应用程序中。JFreeChart 是一个强大的开源库,它提供了多种图表类型,包括柱形图、饼图、线图等,使得开发者能够方便地将数据转化...

    jfreechart示例图片

    jfreechart示例图片dfsdfdsfdsfffffffffffffffffffffffdsfsdf

    jfreechart雷达图

    请记得查看附件中的“jfreechart雷达图”文件,它可能包含示例代码、截图或其他有助于你理解JFreeChart雷达图使用的资源。在实际项目中,结合这些资源和上述知识,你将能够熟练地掌握和应用JFreeChart的雷达图功能。

    jFreeChart生成报表图片

    7. **扩展性**:jFreeChart不仅限于静态图片输出,还可以生成SVG矢量图、PDF文档,甚至直接在Swing或JavaFX界面中绘制图表。同时,与其他Java库(如JDBC、CSV解析库)结合,能方便地从数据库或文件中获取数据并生成...

    用JFreeChart写的雷达图实例

    本文将深入探讨如何利用JFreeChart库来实现一个雷达图实例,这有助于数据可视化,特别是在数据分析和报告中。 首先,我们来看`WMPolarPlot.java`,这个文件很可能包含了对极坐标图(Polar Plot)的实现,因为雷达图...

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    JFreeChart 是一个开源的Java库,用于生成高质量的2D图表,如折线图、饼图、柱状图和堆栈柱状图等。它广泛应用于数据分析、报告和应用程序中,提供丰富的自定义选项来满足各种视觉需求。在本项目中,你将找到能够...

    JFreeChart画曲线图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D图表,包括曲线图、柱状图、饼图、散点图等。在本示例中,我们将重点关注如何使用JFreeChart绘制曲线图,以及如何在数据点上显示具体的数据值。 ...

Global site tag (gtag.js) - Google Analytics