- 浏览: 68039 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
风雨人生:
学习了,很好很强大....
解决JfreeChart柱状图数值显示在柱子顶端的问题 -
wuqi123321:
引用asdfasdfa
解决JfreeChart柱状图数值显示在柱子顶端的问题 -
yefeng:
我下了ru.nlmk.eclipse.plugins.prof ...
Java内存泄漏分析
http://topic.csdn.net/u/20080610/16/8b83d303-239d-42fb-99e6-8bdf43c43cfa.html
package com.trustel.gd12580.datamanagement.service;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Paint;
import java.io.PrintWriter;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.TextAnchor;
/**
* @author Liucl
*
*/
public class KpiCityCompanyChart {
/**
* 图片长度, 默认为650
*/
public static int IMAGE_WIDTH = 760;
/**
* 图片高度, 默认为350
*/
public static int IMAGE_HEIGHT = 350;
/**
* 设置图片显示大小,默认为450*350
*/
public static void setImageRange(int width, int height) {
IMAGE_WIDTH = width;
IMAGE_HEIGHT = height;
}
/**
* 用于生成柱状图
*
* @param title
* 图形标题
* @param domain
* 横坐标名称
* @param range
* 纵坐标名称
* @param session
* 图片生命周期
* @param pw
* printWriter
* @param dataset
* 数据源
* @param length
* 分类数
* @return
*/
public static String createBarChartChart(String title, String domain,
String range, HttpSession session, PrintWriter pw,
DefaultCategoryDataset dataset) {
String filename = null;
try {
JFreeChart chart = createChart(title, domain, range, dataset);
// 把生成的图片放到临时目录
ChartRenderingInfo info = new ChartRenderingInfo(
new StandardEntityCollection());
// 设置图片名称前缀
ServletUtilities.setTempFilePrefix("chart-");
// 生成图片
filename = ServletUtilities.saveChartAsPNG(chart, IMAGE_WIDTH,
IMAGE_HEIGHT, info, session);
// ChartUtilities.writeImageMap(pw, filename, info, false);
pw.flush();
} catch (Exception e) {
e.printStackTrace(System.out);
filename = "error_warning.gif";
}
return filename;
}
/**
* Creates a sample chart.
*
* @param title
* 图形标题
* @param domain
* 横坐标名称
* @param range
* 纵坐标名称
* @param dataset
* 数据源
*
* @return The chart.
*/
private static JFreeChart createChart(String title, String domain,
String range, CategoryDataset dataset) {
// create the chart...
JFreeChart chart = ChartFactory.createBarChart3D(title, // title
domain, // domain axis label
range, // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips?
false // URLs?
);
// set the textTitle of the chart
TextTitle textTitle = chart.getTitle();
//设置标题的字体
String fontA = "华文细黑";
String fontB = "黑体";
textTitle.setFont(new Font(fontA,Font.PLAIN,13));
textTitle.setBackgroundPaint(new GradientPaint(0.0F, 0.0F, Color.decode("#EEF7FF"),
250F, 0.0F, Color.white, true));
textTitle.setExpandToFitSpace(true);
chart.setBackgroundPaint(new GradientPaint(0.0F, 0.0F, Color.decode("#EEF7FF"),
250F, 0.0F, Color.white, true));
CategoryPlot plot = (CategoryPlot) chart.getCategoryPlot();
BarRenderer3D customBarRenderer = (BarRenderer3D) plot.getRenderer();
//CustomBarRenderer3D customBarRenderer = new CustomBarRenderer3D();
//BarRenderer3D customBarRenderer = new BarRenderer3D();
plot.setDomainGridlinePaint(Color.white);
plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.black);
plot.setBackgroundPaint(Color.decode("#F9E9D2"));
// 设置是否有横线
plot.setRangeGridlinesVisible(false);
NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
//设置纵坐标名称的字体
numberaxis.setLabelFont(new Font(fontA,Font.PLAIN,16));
//设置纵坐标上显示的数字字体
numberaxis.setTickLabelFont(new Font("Fixedsys",Font.PLAIN,13));
//设置横坐标名称的字体
CategoryAxis categoryaxis = plot.getDomainAxis();
categoryaxis.setLabelFont(new Font(fontA,Font.PLAIN,16));
//设置横坐标上显示各个业务子项的字体
categoryaxis.setTickLabelFont(new Font(fontA,Font.PLAIN,12));
categoryaxis.setMaximumCategoryLabelLines(100);
categoryaxis.setMaximumCategoryLabelWidthRatio(100);
//横坐标数据倾斜45度
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
// 顶端设置
numberaxis.setUpperMargin(0.14999999999999999D);
// 设置颜色
Paint apaint[] = createPaint();
customBarRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());//显示每个柱的数值
customBarRenderer.setBaseItemLabelsVisible(true);
//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题
customBarRenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
customBarRenderer.setItemLabelAnchorOffset(10D);// 设置柱形图上的文字偏离值
customBarRenderer.setItemLabelsVisible(true);
//设定柱子上面的颜色
customBarRenderer.setSeriesPaint(0, Color.decode("#24F4DB")); // 给series1 Bar
customBarRenderer.setSeriesPaint(1, Color.decode("#7979FF")); // 给series2 Bar
customBarRenderer.setSeriesPaint(2, Color.decode("#FF5555")); // 给series3 Bar
customBarRenderer.setSeriesPaint(3, Color.decode("#F8D661")); // 给series4 Bar
customBarRenderer.setSeriesPaint(4, Color.decode("#F284DC")); // 给series5 Bar
customBarRenderer.setSeriesPaint(5, Color.decode("#00BF00")); // 给series6 Bar
customBarRenderer.setSeriesOutlinePaint(0,Color.BLACK);//边框为黑色
customBarRenderer.setSeriesOutlinePaint(1,Color.BLACK);//边框为黑色
customBarRenderer.setSeriesOutlinePaint(2,Color.BLACK); //边框为黑色
customBarRenderer.setSeriesOutlinePaint(3,Color.BLACK);//边框为黑色
customBarRenderer.setSeriesOutlinePaint(4,Color.BLACK);//边框为黑色
customBarRenderer.setSeriesOutlinePaint(5,Color.BLACK); //边框为黑色
//设置柱子的最大宽度
customBarRenderer.setMaximumBarWidth(0.04);
customBarRenderer.setItemMargin(0.000000005);
plot.setRenderer(customBarRenderer);
return chart;
}
static class CustomBarRenderer3D extends BarRenderer3D {
public Paint getItemPaint(int i, int j) {
return colors[j % colors.length];
}
private Paint colors[];
public CustomBarRenderer3D(Paint apaint[]) {
colors = apaint;
}
public CustomBarRenderer3D() {
// TODO Auto-generated constructor stub
}
}
private static Paint[] createPaint() {
Paint apaint[] = new Paint[5];
apaint[0] = new GradientPaint(0.0F, 0.0F, Color.white, 0.0F, 0.0F,
Color.decode("#FF2020"));
apaint[1] = new GradientPaint(0.0F, 0.0F, Color.white, 0.0F, 0.0F,
Color.decode("#FF2020"));
apaint[2] = new GradientPaint(0.0F, 0.0F, Color.white, 0.0F, 0.0F,
Color.decode("#FF2020"));
apaint[3] = new GradientPaint(0.0F, 0.0F, Color.white, 0.0F, 0.0F,
Color.decode("#FF2020"));
apaint[4] = new GradientPaint(0.0F, 0.0F, Color.white, 0.0F, 0.0F,
Color.decode("#FF2020"));
return apaint;
}
}
发表评论
-
使用filter拦截servlet和jsp页面的内容,进行过滤后输出
2013-06-04 13:42 1188http://blog.csdn.net/shuwei00 ... -
连接池问题
2012-07-22 14:15 739connection耗尽不一定就是由connectio ... -
LuceneTest
2011-06-10 00:38 875/** * */ package com.test ... -
读写文件
2011-05-15 18:16 1039import java.io.BufferedInputStr ... -
流方式下载文章
2010-10-11 18:44 768流方式下载文章 -
JSP 图片验证码
2009-12-22 17:51 1043/*1.定义图片类*/ package servlet; ... -
tomcat 开启SSL
2009-12-10 23:37 18901.生成 KeyStore D:\jdk1.6.0_11 ... -
commons-dbutils 使用
2009-10-09 17:26 1217import java.sql.Connection; im ... -
JBPM数据库表说明
2009-09-28 18:09 1055JBPM数据库表说明 -
中文乱码问题解决,过滤器配置,get post提交乱码,filter,struts乱码,jsp乱码
2009-09-25 18:25 1262http://heisetoufa.iteye.com/blo ... -
JBoss JBPM 实践系列(一)--- 安装配置(Tomcat 6.0 + MySQL 5.1)
2009-09-25 02:02 724http://zhaipuhong.iteye.com/blo ... -
常用网站
2009-06-17 00:35 0http://www.dojochina.com/ ... -
如何卸载和安装Wscript.Shell,FSO和stream对象
2008-11-23 00:16 1767据需要不同我们经常会卸载和安装Wscript.Shell,FS ... -
javascript调用本地的exe程序
2008-11-23 00:00 2394http://dayone.iteye.com/blog/16 ... -
log4j配置文件
2008-11-18 14:02 1110log4j.rootLogger=error,stdout l ... -
Java内存泄漏分析
2008-11-13 19:34 1994http://www.51testing.com/html/9 ... -
JAVA内存泄漏——内存泄漏原因和内存泄漏检测工具(zt)
2008-11-13 19:33 2149http://www.blogjava.net/galaxyp ... -
主题:通过GC输出分析内存泄露问题
2008-11-12 17:44 0http://www.iteye.com/post/70863 ... -
详解MANIFEST.MF文件
2008-10-26 23:19 777http://www.java3z.com/cwbwebhom ... -
JAR 文件揭密
2008-10-26 23:19 788http://www-128.ibm.com/develope ...
相关推荐
当我们需要创建一个柱状图,并且希望在同一组数据中,每根柱子显示不同的颜色时,JFreeChart提供了灵活的配置方式来实现这一需求。下面我们将详细探讨如何利用JFreeChart让单组柱子显示不同的颜色。 首先,我们需要...
jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707
对于柱状图,可以使用`CategoryItemLabelGenerator`来为每个柱子添加标签,如显示具体数值。 至于图表的标题、轴标签等,可以通过`ChartTitle`、`CategoryAxis.createStandardAxisLabel()`和`ValueAxis....
利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错
Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
在日常的数据分析与展示工作中,柱状图是非常常见的一种图表类型,它能直观地显示不同类别之间的数值差异。JFreeChart 是一款基于 Java 的开源图表绘制工具,它提供了丰富的图表类型和高度定制化的选项。但在实际...
在Java编程中,JFreeChart库是一个强大的图表绘制工具,它能够帮助开发者创建出多种类型的图表,包括柱状图、饼图等,广泛应用于数据分析和可视化展示。这篇博文中,我们将深入探讨如何使用JFreeChart来创建柱状图和...
根据给定的信息,本文将详细解释如何使用JFreeChart库生成单组3D变色柱状图,并确保每个柱子的颜色不同。此方法对于需要在报告、数据分析或可视化项目中展示数据时非常有用。 ### 一、理解标题与描述 #### 1.1 ...
JFreeChart创建柱状图,之前网上很多都是创建柱状图的,静态的。数据更新之后柱状图随之改变,代码实现详见附件代码。所需要的jar包是jfreechart-1.0.13.jar,gnujaxp.jar,jcommon-1.0.16.jar
JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...
java+jfreechart+struts 生成柱状图 java jfreechart 柱状图 java jfreechart 柱状图 谁需要完整项目可以去http://download.csdn.net/source/2665347
在商业智能和统计分析中,柱状图能够清晰地比较不同类别的数值,尤其适合于显示各类别之间的差异和整体趋势。 在 JFreeChart 中创建柱状图主要涉及以下步骤: 1. **创建 CategoryDataset**:这是柱状图的基础,...
在JFreeChart的CHM手册中,你可以找到关于如何使用JFreeChart创建柱状图的详细步骤、API参考、示例代码以及问题解决方案。 6. **应用场景** JFreeChart的柱状图常用于商业报告、统计分析、科学实验结果展示等场景...
柱状图是数据可视化中常用的一种方式,它通过竖直或水平的柱子长度来表示数值大小。在JFreeChart中,可以使用`CategoryPlot`类来创建柱状图。我们需要准备数据集,通常是`DefaultCategoryDataset`对象,然后将数据集...
public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 <!--begin 维优特例 --> ...
在Java编程环境中,JFreeChart库是一个非常强大的工具,它允许开发者轻松地创建各种图表,如柱状图、饼图、时序图和折线图等。这些图表在数据分析、报表展示以及各种可视化应用中非常常见。下面我们将详细介绍如何...