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>
分享到:
相关推荐
在Java开发领域,JFreeChart库是一个非常受欢迎的图表生成工具,它允许开发者轻松地创建各种图表,包括柱状图、线形图、饼状图等。本篇将重点介绍如何利用JFreeChart来创建3D和平面的饼状图,并提供详细的注释帮助...
Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...
jfreechart饼状图 jfreechart是一个流行的Java图表库,提供了多种类型的图表,包括饼状图。饼状图是用于描述比例数据的图表类型,通常用于展示一个整体中各部分的比例关系。 jfreechart饼状图的生成可以通过使用...
Flex是一种基于ActionScript的开源框架,主要用于构建富互联网应用程序(RIA),而JFreeChart则是一个Java库,专门用于生成高质量的图表,包括饼状图、柱状图和曲线图等。 在Flex中,我们通常使用MXML和...
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
在Java编程中,生成饼状图是一种常见的数据可视化方法,尤其适用于展示各项比例关系。饼状图由多个扇形组成,每个扇形代表数据集中的一项,其大小与该项在总数据中的比例相对应。本实例将详细介绍如何在Java中创建...
在Java中,我们可以使用JavaFX或JFreeChart库来创建饼状图。JavaFX的`PieChart`类提供了直接创建饼图的功能,只需要设置各个扇区的值和标签即可。而JFreeChart则提供了更强大的自定义选项,如添加图例、调整颜色等。...
JFreeChart 是一个流行的 Java 图表库,它提供了丰富的图表绘制功能,包括柱状图、饼状图、折线图等。在本文中,我们将使用 JFreeChart 库来生成 Excel 图表。 标题:Java 利用 JFreeChart 绘制 Excel 图表 描述:...
java实现的 生成饼状图 生成单组柱状图 生成多组柱状图 生成堆积柱状图 生成折线图 里面包括了所需要的 jcommon-1.0.12.jar jfreechart-1.0.8a.jar
“利用JFreeChart实现Java中饼状图、柱状图等图表并在Jsp中显示”这个标题表明我们将探讨如何使用JFreeChart库来创建各种类型的图表,如饼状图和柱状图,并且这些图表能够在JavaServer Pages (JSP) 中展示。...
JFreeChart是一款强大的Java库,用于创建各种图表,包括柱状图、饼状图和3D饼状图等。在Java编程中,JFreeChart是一个非常实用的工具,它允许开发者轻松地在应用程序中集成数据可视化功能。下面将详细介绍如何使用...
JFreeChart 是一个开源的 Java 图形库,用于生成高质量的图表,包括饼状图、柱状图、线形图等多种类型。在本教程中,我们将深入探讨如何使用 JFreeChart 创建饼状图(Pie Chart),这是一个常用于展示数据部分比例的...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括折线图、柱状图、饼状图、散点图等,并且支持自定义样式和颜色,使得数据可视化变得更加直观和生动。在这个特定的场景中,我们将关注...
在Java编程中,创建线形图、柱形图和饼状图是数据分析和可视化的重要部分。这些图表可以帮助我们直观地理解复杂的数据集,使数据更易于解析和解释。以下将详细探讨如何在Java环境中实现这些图形,特别是针对...
在Java中,我们可以利用JFreeChart库来创建饼状图。JFreeChart是一个强大的开源库,提供了多种类型的图表生成功能。要创建饼状图,我们需要定义数据集(通常是一个`DefaultPieDataset`),然后使用`PieChart`类构建...
JFreeChart 是一个流行的 Java 图表库,能够生成各种类型的图表,包括折线图、柱状图、饼状图等。下面是使用 JFreeChart 库绘制 Excel 图表的相关知识点: 导包 为了使用 JFreeChart 库,需要将 jfreechart-1.0.8a...
在Java编程环境中,JFreeChart库是一个非常强大的工具,它允许开发者创建各种类型的图表,包括饼形图和柱形图,这些图表广泛应用于数据分析、报表生成以及可视化展示。本实例将详细探讨如何利用JFreeChart在Java项目...
jFreeChart是java编程语言中一个功能强大、开源免费的图表库,能够生成各种类型的图表,包括曲线图、饼状图、柱状图等。通过jFreeChart,可以快速地生成高质量的图表,以满足不同领域的需求。 jFreeChart核心对象类...
在这个项目中,很可能是使用了JFreeChart,它是一个强大的Java图表库,可以方便地创建各种类型的图表,包括饼状图。JFreeChart提供了API来构建数据模型,设置图例、颜色、标签等,并将图表渲染为图片。 5. **图片...
JFreeChart是一个强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括柱状图、饼状图、线形图、散点图等。在这个特定的案例中,我们关注的是“3D饼状图”的实现,这是一种用以展示数据比例关系的可视化...