`
ly102289
  • 浏览: 11114 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

java技术 jfreechart 饼状图

阅读更多
java代码
package com.trswcm.jfreechar;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.general.DefaultPieDataset;
/**
*
* <p>标题: —— 生成饼状图</p>
* <p>描述: —— 更具sql生成柱状图</p>
* <p>模块: 通用平台</p>
* <p>版权: Copyright (c) 2011 江苏集群信息产业股份有限公司
* @author 刘永
* @version 1.0
* @since 2011-3-9 上午11:41:57
* <p>修订历史:(历次修订内容、修订人、修订时间等) </p>
*/
public class PieChart {
    /**
     *
      * <p>生成饼状图</p>
      * <p>创建时间:2011-3-9上午11:43:20</p>
      * <p>作者: 刘永</p>
      * @param session
      * @param pw
      * @return String
     */
public  String getPieChart(HttpSession session, PrintWriter pw){
//报表文件名称
String fileName = null;
//报表数据
DefaultPieDataset data = new JfreeCharttools().createPieDateSet();
PiePlot plot = new PiePlot(data);
JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);
//可选,设置图片背景色
chart.setBackgroundPaint(java.awt.Color.white);
//可选,设置图片标题
chart.setTitle("www.SenTom.net 网站访问统计表");
//500是图片长度,300是图片高度
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());

try {
fileName = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return  fileName;
}
}


package com.trswcm.jfreechar;

import java.awt.Color;
import java.awt.Font;


import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;

/**
*
* <p>标题: —— jfreechart的工具类</p>
* <p>描述: —— 简要描述类的职责、实现方式、使用注意事项等</p>
* <p>模块: 查询统计</p>
* <p>版权: Copyright (c) 2011 江苏集群信息产业股份有限公司
* @author 刘永
* @version 1.0
* @since 2011-3-9 上午10:45:39
* <p>修订历史:(历次修订内容、修订人、修订时间等) </p>
*/
public class JfreeCharttools {
/**
*
  * <p>方法说明:处理JFreeChart中文乱码问题</p>
  * <p>创建时间:2011-3-9上午10:46:25</p>
  * <p>作者: 刘永</p>
  * @param chart Jfreechart对象
*/
    @SuppressWarnings("all")
    public void configFont(JFreeChart chart){ 
         // 配置字体 
         Font xfont = new Font("宋体",Font.PLAIN,12) ;// X轴 
         Font yfont = new Font("宋体",Font.PLAIN,12) ;// Y轴 
         Font kfont = new Font("宋体",Font.PLAIN,12) ;// 底部 
         Font titleFont = new Font("隶书", Font.BOLD , 25) ; // 图片标题 
         CategoryPlot plot = chart.getCategoryPlot();// 图形的绘制结构对象            
         // 图片标题 
         chart.setTitle(new TextTitle(chart.getTitle().getText(),titleFont)); 
         // 底部 
         chart.getLegend().setItemFont(kfont); 
         // X 轴 
         CategoryAxis domainAxis = plot.getDomainAxis();    
         domainAxis.setLabelFont(xfont);// 轴标题 
         domainAxis.setTickLabelFont(xfont);// 轴数值   
         // Y 轴 
         ValueAxis rangeAxis = plot.getRangeAxis();    
         rangeAxis.setLabelFont(yfont);  
         rangeAxis.setLabelPaint(Color.BLUE) ; // 字体颜色 
         rangeAxis.setTickLabelFont(yfont);   
         // 字体颜色
         domainAxis.setTickLabelPaint(Color.BLUE) ;  
         // 横轴上的label斜显示
         domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);   
       
    } 
    /**
     *
      * <p>获取柱状图数据对象</p>
      * <p>创建时间:2011-3-9上午11:26:57</p>
      * <p>作者: 刘永</p>
      * @return DefaultCategoryDataset 柱状图数据对象
     */
    @SuppressWarnings("all")
public DefaultCategoryDataset  createBarDateSet()
    {
      double[] data = {85, 156, 179.5, 211, 123};
      String[] labels = {"星期一", "星期二", "星期三", "星期四", "星期五"};
   
      DefaultCategoryDataset dataset = new DefaultCategoryDataset();
      for (int i = 0; i < data.length; i++) {
        dataset.addValue(data[i], labels[i], labels[i]);
      }
        return dataset;
    }
   
    /**
     *
      * <p>获取趋势图数据对象</p>
      * <p>创建时间:2011-3-9上午11:27:50</p>
      * <p>作者: 刘永</p>
      * @return XYDataset  趋势图数据对象
     */
    @SuppressWarnings("all")
public XYDataset createXYDateSet()
    {
        TimeSeriesCollection dataset = new TimeSeriesCollection();//时间曲线数据集合
        TimeSeries s1 = new TimeSeries("难难难", Day.class);;
//创建时间数据源,每一个//TimeSeries在图上是一条曲线


        s1.add(new Day(1, 2, 2006), 123.51);
        s1.add(new Day(2, 2, 2006), 122.1);
        s1.add(new Day(3, 2, 2006), 120.86);
        s1.add(new Day(4, 2, 2006), 122.50);
        s1.add(new Day(5, 2, 2006), 123.12);
        s1.add(new Day(6, 2, 2006), 123.9);
        s1.add(new Day(7, 2, 2006), 124.47);
        s1.add(new Day(8, 2, 2006), 124.08);
        s1.add(new Day(9, 2, 2006), 123.55);
        s1.add(new Day(10, 2, 2006), 122.53);

        dataset.addSeries(s1);
        dataset.setDomainIsPointsInTime(true);
        return dataset;
    }
    /**
     *
      * <p>获取饼状图数据对象</p>
      * <p>创建时间:2011-3-9上午11:29:12</p>
      * <p>作者: 刘永</p>
      * @return DefaultPieDataset  饼状图数据对象
     */
    @SuppressWarnings("all")
   public DefaultPieDataset createPieDateSet()
    {
    DefaultPieDataset data = new DefaultPieDataset();
data.setValue("六月",500);
data.setValue("七月",580);
data.setValue("八月",828);

        return data;
    }

}


jsp代码
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.trswcm.jfreechar.PieChart"%>
<%@ page import = "java.io.PrintWriter" %>
<%
PieChart barChart=new PieChart();
String fileName=barChart.getPieChart(session,new PrintWriter(out));
  String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;
%>
<html>
</head>
<title> JFreeChart使用例子</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= fileName %>">
</body>
</html>

分享到:
评论

相关推荐

    JFreeChart饼状图

    在Java开发领域,JFreeChart库是一个非常受欢迎的图表生成工具,它允许开发者轻松地创建各种图表,包括柱状图、线形图、饼状图等。本篇将重点介绍如何利用JFreeChart来创建3D和平面的饼状图,并提供详细的注释帮助...

    java制作jfreechart柱状图 饼状图 折线图

    Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...

    jfreechart饼状图

    jfreechart饼状图 jfreechart是一个流行的Java图表库,提供了多种类型的图表,包括饼状图。饼状图是用于描述比例数据的图表类型,通常用于展示一个整体中各部分的比例关系。 jfreechart饼状图的生成可以通过使用...

    flex +jfreechart生成 饼状图+曲线图+柱状图(完整版)

    Flex是一种基于ActionScript的开源框架,主要用于构建富互联网应用程序(RIA),而JFreeChart则是一个Java库,专门用于生成高质量的图表,包括饼状图、柱状图和曲线图等。 在Flex中,我们通常使用MXML和...

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

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

    java饼状图生成实例

    在Java编程中,生成饼状图是一种常见的数据可视化方法,尤其适用于展示各项比例关系。饼状图由多个扇形组成,每个扇形代表数据集中的一项,其大小与该项在总数据中的比例相对应。本实例将详细介绍如何在Java中创建...

    java 实现饼状图、柱状图、折线图

    在Java中,我们可以使用JavaFX或JFreeChart库来创建饼状图。JavaFX的`PieChart`类提供了直接创建饼图的功能,只需要设置各个扇区的值和标签即可。而JFreeChart则提供了更强大的自定义选项,如添加图例、调整颜色等。...

    java利用jfreechart绘制excel.pdf

    JFreeChart 是一个流行的 Java 图表库,它提供了丰富的图表绘制功能,包括柱状图、饼状图、折线图等。在本文中,我们将使用 JFreeChart 库来生成 Excel 图表。 标题:Java 利用 JFreeChart 绘制 Excel 图表 描述:...

    java实现图表,饼状图,柱状图,折线图,

    java实现的 生成饼状图 生成单组柱状图 生成多组柱状图 生成堆积柱状图 生成折线图 里面包括了所需要的 jcommon-1.0.12.jar jfreechart-1.0.8a.jar

    利用JFreeChart实现Java中饼状图、柱状图等图表并在Jsp中显示

    “利用JFreeChart实现Java中饼状图、柱状图等图表并在Jsp中显示”这个标题表明我们将探讨如何使用JFreeChart库来创建各种类型的图表,如饼状图和柱状图,并且这些图表能够在JavaServer Pages (JSP) 中展示。...

    JFreeChart编写柱状图和饼状图及3D饼状图方法

    JFreeChart是一款强大的Java库,用于创建各种图表,包括柱状图、饼状图和3D饼状图等。在Java编程中,JFreeChart是一个非常实用的工具,它允许开发者轻松地在应用程序中集成数据可视化功能。下面将详细介绍如何使用...

    JFreeChart入门_-_使用JFreeChart开发Pie(饼状图)

    JFreeChart 是一个开源的 Java 图形库,用于生成高质量的图表,包括饼状图、柱状图、线形图等多种类型。在本教程中,我们将深入探讨如何使用 JFreeChart 创建饼状图(Pie Chart),这是一个常用于展示数据部分比例的...

    JFreeChart生成3D饼状图及柱状图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括折线图、柱状图、饼状图、散点图等,并且支持自定义样式和颜色,使得数据可视化变得更加直观和生动。在这个特定的场景中,我们将关注...

    java线形图柱形图饼状图

    在Java编程中,创建线形图、柱形图和饼状图是数据分析和可视化的重要部分。这些图表可以帮助我们直观地理解复杂的数据集,使数据更易于解析和解释。以下将详细探讨如何在Java环境中实现这些图形,特别是针对...

    java图表 饼状图,柱状图,折线图

    在Java中,我们可以利用JFreeChart库来创建饼状图。JFreeChart是一个强大的开源库,提供了多种类型的图表生成功能。要创建饼状图,我们需要定义数据集(通常是一个`DefaultPieDataset`),然后使用`PieChart`类构建...

    java利用jfreechart绘制excel参考.pdf

    JFreeChart 是一个流行的 Java 图表库,能够生成各种类型的图表,包括折线图、柱状图、饼状图等。下面是使用 JFreeChart 库绘制 Excel 图表的相关知识点: 导包 为了使用 JFreeChart 库,需要将 jfreechart-1.0.8a...

    饼形图、柱形图实例 jfreechart (Java)

    在Java编程环境中,JFreeChart库是一个非常强大的工具,它允许开发者创建各种类型的图表,包括饼形图和柱形图,这些图表广泛应用于数据分析、报表生成以及可视化展示。本实例将详细探讨如何利用JFreeChart在Java项目...

    利用jFreeChart做曲线图、饼状图、柱状图

    jFreeChart是java编程语言中一个功能强大、开源免费的图表库,能够生成各种类型的图表,包括曲线图、饼状图、柱状图等。通过jFreeChart,可以快速地生成高质量的图表,以满足不同领域的需求。 jFreeChart核心对象类...

    java jsp+servlet根据数据生成饼状图.rar

    在这个项目中,很可能是使用了JFreeChart,它是一个强大的Java图表库,可以方便地创建各种类型的图表,包括饼状图。JFreeChart提供了API来构建数据模型,设置图例、颜色、标签等,并将图表渲染为图片。 5. **图片...

    jfreechart实现3d饼状图

    JFreeChart是一个强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括柱状图、饼状图、线形图、散点图等。在这个特定的案例中,我们关注的是“3D饼状图”的实现,这是一种用以展示数据比例关系的可视化...

Global site tag (gtag.js) - Google Analytics