- 浏览: 305648 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
every:
真JB坑爹,标题redhat6 结果用的时5.3 ,尼玛标 ...
RedHat Linux 6企业版开启VNC Server远程桌面 -
okooo00:
五年光景蹉跎,最终还是烂尾了,从此人生又少了一样追求
《凡人修仙传》点评 -
mikey_5:
原来是这样子判断数据格式的,Thanks
POI读取Excel浅谈 -
jveqi:
tracy_meimei 写道楼主,我试过N多次了,在我的my ...
MyEclipse6.5 下Axis2插件的下载和安装 -
jsx112:
...
MySQL select into和SQL select into
以下是源代码:
/*
* jfreechart
*
* */
package cn.com.terje.jfreechart;
import java.awt.Font;
import java.io.File;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
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.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.TextAnchor;
/**
* jfreechart 复习笔记
*
* 通过虚拟家乡甜点供应,做个图标展示一下
*
* @author terje liu
*/
public class DomeOne
{
public static void main(String[] args) throws IOException
{
JFreeChart chart = ChartFactory.createBarChart("桂林甜点供应(个)", "城区",
"供应量", getDateSet(), PlotOrientation.HORIZONTAL, true, true,
false);
// ---------显示中文------------\\
chart.getTitle().setFont(new Font("宋体", Font.PLAIN, 20));
CategoryPlot plot = chart.getCategoryPlot();
// 设置分类 中文,就是图片里面的那个"城区"和"xx区"
CategoryAxis cgAxis = plot.getDomainAxis();
cgAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 11));
cgAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
// 设置数值 中文
ValueAxis vAxis = plot.getRangeAxis();
vAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 11));
vAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
// 显示说明 中文
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 16));
// -------微调整-------\\
// 设置边距,右边的(防止最大值,跑到图片外面去,所以要设置一下)
vAxis.setUpperMargin(0.08);
// 设置最小值(有个最小值好一些,容易突出重点嘛)
vAxis.setLowerBound(200);
// ------将每个柱子显示的数值 显示出来---------\\
BarRenderer barRender = new BarRenderer();
barRender
.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
barRender.setBaseItemLabelFont(new Font("宋体", Font.PLAIN, 11));
barRender.setBaseItemLabelsVisible(true);
// 避免因为数值过小,显示不明显,或则看不到
barRender.setMinimumBarLength(10);
plot.setRenderer(barRender);
// 调节柱子显示的数值的位置
// 通过设置ItemLabelPosition里面的2个静态参数(奇怪了,ItemLabelAnchor的含义文档好像没有怎么说)
barRender.setBasePositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE2, TextAnchor.TOP_LEFT));
// ------将结果以图片形式输出------\\
File f = new File("c:\\domeone.jpg");
ChartUtilities.saveChartAsJPEG(f, chart, 800, 640);
}
/**
* 数据集
*
*/
public static CategoryDataset getDateSet()
{
DefaultCategoryDataset dcd = new DefaultCategoryDataset();
dcd.addValue(552, "布丁", "七星高新区");
dcd.addValue(1131, "蛋挞", "七星高新区");
dcd.addValue(912, "海苔饼", "七星高新区");
dcd.addValue(513, "脆皮奶", "七星高新区");
dcd.addValue(313, "巧克力蛋糕", "七星高新区");
dcd.addValue(946, "布丁", "秀峰区");
dcd.addValue(563, "蛋挞", "秀峰区");
dcd.addValue(712, "海苔饼", "秀峰区");
dcd.addValue(399, "脆皮奶", "秀峰区");
dcd.addValue(299, "巧克力蛋糕", "秀峰区");
dcd.addValue(564, "布丁", "象山区");
dcd.addValue(765, "蛋挞", "象山区");
dcd.addValue(592, "海苔饼", "象山区");
dcd.addValue(799, "脆皮奶", "象山区");
dcd.addValue(499, "巧克力蛋糕", "象山区");
dcd.addValue(464, "布丁", "叠彩区");
dcd.addValue(263, "蛋挞", "叠彩区");
dcd.addValue(992, "海苔饼", "叠彩区");
dcd.addValue(691, "脆皮奶", "叠彩区");
dcd.addValue(291, "巧克力蛋糕", "叠彩区");
dcd.addValue(261, "布丁", "雁山区");
dcd.addValue(333, "蛋挞", "雁山区");
dcd.addValue(594, "海苔饼", "雁山区");
dcd.addValue(599, "脆皮奶", "雁山区");
dcd.addValue(201, "巧克力蛋糕", "雁山区");
return dcd;
}
}
现在预测一个需求,用户不需要在柱子弹上方显示数字,而是显示百分比。
那么需要将标识的生成器换一个构造函数。
new StandardCategoryItemLabelGenerator("{0} {1} {2} {3}", NumberFormat.getNumberInstance(),
new DecimalFormat("0.00%"));
{0}表示甜点的种类,例如:“布丁”
{1}表示地区,例如:七星区
{2}表示数量,例如七星区的布丁数量是552
{3}表示百分比,这样一来就在柱状图里面显示百分比
以下是来自网络的一些信息,对学习jfreechart很有用,虽然里面有些方法被抛弃了。
学JFreeChart不得不看的中文API
ValueAxis(Axis)类:
void setAutoRange(boolean auto)自动设置数据轴数据范围 void setAutoRangeMinimumSize(double size)自动设置数据轴数据范围时数据范围的最小跨度 void setAutoTickUnitSelection(boolean flag)数据轴的数据标签是否自动确定(默认为true) void setFixedAutoRange(double length)数据轴固定数据范围(设置100的话就是显示MAXVALUE到MAXVALUE-100那段数据范围) void setInverted(boolean flag)数据轴是否反向(默认为false) void setLowerMargin(double margin)数据轴下(左)边距 void setUpperMargin(double margin)数据轴上(右)边距 void setLowerBound(double min)数据轴上的显示最小值 void setUpperBound(double max)数据轴上的显示最大值 void setPositiveArrowVisible(boolean visible)是否显示正向箭头(3D轴无效) void setNegativeArrowVisible(boolean visible)是否显示反向箭头(3D轴无效) void setVerticalTickLabels(boolean flag)数据轴数据标签是否旋转到垂直 void setStandardTickUnits(TickUnitSource source)数据轴的数据标签(可以只显示整数标签,需要将AutoTickUnitSelection设false) |
NumberAxis(ValueAxis)类:
void setAutoRangeIncludesZero(boolean flag)是否强制在自动选择的数据范围中包含0 void setAutoRangeStickyZero(boolean flag)是否强制在整个数据轴中包含0,即使0不在数据范围中 void setNumberFormatOverride(NumberFormat formatter)数据轴数据标签的显示格式 void setTickUnit(NumberTickUnit unit)数据轴的数据标签(需要将AutoTickUnitSelection设false) |
DateAxis(ValueAxis)类:
void setMaximumDate(Date maximumDate)日期轴上的最小日期 void setMinimumDate(Date minimumDate)日期轴上的最大日期 void setRange(Date lower,Date upper)日期轴范围 void setDateFormatOverride(DateFormat formatter)日期轴日期标签的显示格式 void setTickUnit(DateTickUnit unit)日期轴的日期标签(需要将AutoTickUnitSelection设false) void setTickMarkPosition(DateTickMarkPosition position)日期标签位置(参数常量在org.jfree.chart.axis.DateTickMarkPosition类中定义) |
CategoryAxis(Axis)类:
void setCategoryMargin(double margin)分类轴边距 void setLowerMargin(double margin)分类轴下(左)边距 void setUpperMargin(double margin)分类轴上(右)边距 void setVerticalCategoryLabels(boolean flag)分类轴标题是否旋转到垂直 void setMaxCategoryLabelWidthRatio(float ratio)分类轴分类标签的最大宽度 |
AbstractRenderer类:
void setItemLabelAnchorOffset(double offset)数据标签的与数据点的偏移 void setItemLabelsVisible(boolean visible)数据标签是否可见 void setItemLabelFont(Font font)数据标签的字体 void setItemLabelPaint(Paint paint)数据标签的字体颜色 void setItemLabelPosition(ItemLabelPosition position)数据标签位置 void setPositiveItemLabelPosition(ItemLabelPosition position)正数标签位置 void setNegativeItemLabelPosition(ItemLabelPosition position)负数标签位置 void setOutLinePaint(Paint paint)图形边框的线条颜色 void setOutLineStroke(Stroke stroke)图形边框的线条笔触 void setPaint(Paint paint)所有分类图形的颜色 void setShape(Shape shape)所有分类图形的形状(如折线图的点) void setStroke(Stroke stroke)所有分类图形的笔触(如折线图的线) void setSeriesItemLabelsVisible(int series,boolean visible)指定分类的数据标签是否可见 void setSeriesItemLabelFont(int series,Font font)指定分类的数据标签的字体 void setSeriesItemLabelPaint(int series,Paint paint)指定分类的数据标签的字体颜色 void setSeriesItemLabelPosition(int series,ItemLabelPosition position)数据标签位置 void setSeriesPositiveItemLabelPosition(int series,ItemLabelPosition position)正数标签位置 void setSeriesNegativeItemLabelPosition(int series,ItemLabelPosition position)负数标签位置 void setSeriesOutLinePaint(int series,Paint paint)指定分类的图形边框的线条颜色 void setSeriesOutLineStroke(int series,Stroke stroke)指定分类的图形边框的线条笔触 void setSeriesPaint(int series,Paint paint)指定分类图形的颜色 void setSeriesShape(int series,Shape shape)指定分类图形的形状(如折线图的点) void setSeriesStroke(int series,Stroke stroke)指定分类图形的笔触(如折线图的线) |
AbstractCategoryItemRenderer(AbstractRenderer)类:
void setLabelGenerator(CategoryLabelGenerator generator)数据标签的格式 void setToolTipGenerator(CategoryToolTipGenerator generator)MAP中鼠标移上的显示格式 void setItemURLGenerator(CategoryURLGenerator generator)MAP中钻取链接格式 void setSeriesLabelGenerator(int series,CategoryLabelGenerator generator)指定分类的数据标签的格式 void setSeriesToolTipGenerator(int series,CategoryToolTipGenerator generator)指定分类的MAP中鼠标移上的显示格式 void setSeriesItemURLGenerator(int series,CategoryURLGenerator generator)指定分类的MAP中钻取链接格式 |
BarRenderer(AbstractCategoryItemRenderer)类:
void setDrawBarOutline(boolean draw)是否画图形边框 void setItemMargin(double percent)每个BAR之间的间隔 void setMaxBarWidth(double percent)每个BAR的最大宽度 void setMinimumBarLength(double min)最短的BAR长度,避免数值太小而显示不出 void setPositiveItemLabelPositionFallback(ItemLabelPosition position)无法在BAR中显示的正数标签位置 void setNegativeItemLabelPositionFallback(ItemLabelPosition position)无法在BAR中显示的负数标签位置 |
BarRenderer3D(BarRenderer)类:
void setWallPaint(Paint paint)3D坐标轴的墙体颜色 |
StackedBarRenderer(BarRenderer)类:
没有特殊的设置 |
StackedBarRenderer3D(BarRenderer3D)类:
没有特殊的设置 |
GroupedStackedBarRenderer(StackedBarRenderer)类:
void setSeriesToGroupMap(KeyToGroupMap map)将分类自由的映射成若干个组(KeyToGroupMap.mapKeyToGroup(series,group)) |
LayeredBarRenderer(BarRenderer)类:
void setSeriesBarWidth(int series,double width)设定每个分类的宽度(注意设置不要使某分类被覆盖) |
WaterfallBarRenderer(BarRenderer)类:
void setFirstBarPaint(Paint paint)第一个柱图的颜色 void setLastBarPaint(Paint paint)最后一个柱图的颜色 void setPositiveBarPaint(Paint paint)正值柱图的颜色 void setNegativeBarPaint(Paint paint)负值柱图的颜色 |
IntervalBarRenderer(BarRenderer)类:
需要传IntervalCategoryDataset作为数据源 |
GanttBarRenderer(IntervalBarRenderer)类:
void setCompletePaint(Paint paint)完成进度颜色 void setIncompletePaint(Paint paint)未完成进度颜色 void setStartPercent(double percent)设置进度条在整条中的起始位置(0.0~1.0) void setEndPercent(double percent)设置进度条在整条中的结束位置(0.0~1.0) |
StatisticBarRenderer(BarRenderer)类:
需要传StatisticCategoryDataset作为数据源 |
LineAndShapeRenderer(AbstractCategoryItemRenderer)类:
void setDrawLines(boolean draw)是否折线的数据点之间用线连 void setDrawShapes(boolean draw)是否折线的数据点根据分类使用不同的形状 void setShapesFilled(boolean filled)所有分类是否填充数据点图形 void setSeriesShapesFilled(int series,boolean filled)指定分类是否填充数据点图形 void setUseFillPaintForShapeOutline(boolean use)指定是否填充数据点的Paint也被用于画数据点形状的边框 |
LevelRenderer(AbstractCategoryItemRenderer)类:
void setItemMargin(double percent)每个分类之间的间隔 void setMaxItemWidth(double percent)每个分类的最大宽度 |
CategoryStepRenderer(AbstractCategoryItemRenderer)类:
void setStagger(boolean shouldStagger)不同分类的图是否交错 |
MinMaxCategoryRenderer(AbstractCategoryItemRenderer)类:
void setDrawLines(boolean drawLines)是否在每个分类线间画连接线 void setGroupPaint(Paint groupPaint)一组图形连接线的颜色 void setGroupStroke(Stroke groupStroke)一组图形连接线的笔触 void setMaxIcon(Icon maxIcon)最大值的ICON void setMinIcon(Icon minIcon)最小值的ICON void setObjectIcon(Icon objectIcon)所有值的ICON |
AreaRender(AbstractCategoryItemRenderer)类:
没有特殊的设置 |
StackedAreaRender(AreaRender)类:
没有特殊的设置 |
关键就是用好Renderer这个类了,再贴个例子:
String sFont = "宋体"; chart.setBorderVisible(true); chart.setBorderPaint(new Color(0xFF,0x66,0x00)); chart.setBackgroundPaint(new Color(0xFF,0xF3,0xDE)); chart.getTitle().setPaint(Color.red); chart.getTitle().setFont(new Font(sFont,Font.BOLD,14)); //设置Plot,不显示所有网格 //设置横轴字体,设定横轴轴线不可见,隐藏纵轴 //采用BarRenderer作为表示器 //在条中央显示投票数值 |
JFreeChart类:
void setAntiAlias(boolean flag)字体模糊边界 void setBackgroundImage(Image image)背景图片 void setBackgroundImageAlignment(int alignment)背景图片对齐方式(参数常量在org.jfree.ui.Align类中定义) void setBackgroundImageAlpha(float alpha)背景图片透明度(0.0~1.0) void setBackgroundPaint(Paint paint)背景色 void setBorderPaint(Paint paint)边界线条颜色 void setBorderStroke(Stroke stroke)边界线条笔触 void setBorderVisible(boolean visible)边界线条是否可见 |
TextTitle类:
void setFont(Font font)标题字体 void setPaint(Paint paint)标题字体颜色 void setText(String text)标题内容 |
StandardLegend(Legend)类:
void setBackgroundPaint(Paint paint)图示背景色 void setTitle(String title)图示标题内容 void setTitleFont(Font font)图示标题字体 void setBoundingBoxArcWidth(int arcWidth)图示边界圆角宽 void setBoundingBoxArcHeight(int arcHeight)图示边界圆角高 void setOutlinePaint(Paint paint)图示边界线条颜色 void setOutlineStroke(Stroke stroke)图示边界线条笔触 void setDisplaySeriesLines(boolean flag)图示项是否显示横线(折线图有效) void setDisplaySeriesShapes(boolean flag)图示项是否显示形状(折线图有效) void setItemFont(Font font)图示项字体 void setItemPaint(Paint paint)图示项字体颜色 void setAnchor(int anchor)图示在图表中的显示位置(参数常量在Legend类中定义) |
Axis类:
void setVisible(boolean flag)坐标轴是否可见
void setAxisLinePaint(Paint paint)坐标轴线条颜色(3D轴无效)
void setAxisLineStroke(Stroke stroke)坐标轴线条笔触(3D轴无效)
void setAxisLineVisible(boolean visible)坐标轴线条是否可见(3D轴无效)
void setFixedDimension(double dimension)(用于复合表中对多坐标轴的设置)
void setLabel(String label)坐标轴标题
void setLabelFont(Font font)坐标轴标题字体
void setLabelPaint(Paint paint)坐标轴标题颜色
void setLabelAngle(double angle)`坐标轴标题旋转角度(纵坐标可以旋转)
void setTickLabelFont(Font font)坐标轴标尺值字体
void setTickLabelPaint(Paint paint)坐标轴标尺值颜色
void setTickLabelsVisible(boolean flag)坐标轴标尺值是否显示
void setTickMarkPaint(Paint paint)坐标轴标尺颜色
void setTickMarkStroke(Stroke stroke)坐标轴标尺笔触
void setTickMarksVisible(boolean flag)坐标轴标尺是否显示
发表评论
-
Mina开发笔记
2014-12-08 20:08 0import java.nio.charset.Ch ... -
Excel中日期与数字的转换代码
2014-05-30 23:24 2708public static void main(St ... -
求一个月有几周
2013-02-22 18:19 1118int year = 2013; int month= ... -
The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
2012-09-13 11:58 2260部署 web project 到weblogic92(换成10 ... -
ecllipse无法启动,一直停留刚开始启动界面
2012-07-18 11:47 23491、 故障发生原因 :由于电脑配置较差 ,经常死机 或者 ... -
启动JBOSS,提示错误1098端口被占用的解决方案
2012-06-25 10:25 1742问题:启动JBOSS,提示错误1098端口被占用 方案一: ... -
Version 1.3.1_01 of the JVM is not suitable for this product.Version:1.4.1 or gr
2012-05-30 17:06 1097Version 1.3.1_01 of the JVM is ... -
java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.supp
2012-04-10 21:51 1926java.lang.AbstractMethodError: ... -
org.apache.axis2.databinding.utils.BeanUtil.getPullParser错误
2012-03-28 12:56 1862在开发ssh+axis2的webservice应用中,报这个错 ... -
增加eclipse启动的Tomcat内存的
2011-09-30 10:04 8862JAVA程序启动时JVM都会分配一个初始内存和最大内存给这 ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2011-09-26 10:02 11991、 PermGen space的全称 ... -
POI读取Excel浅谈
2011-09-24 15:30 2885先看代码,挨句解释: 一般遍历使用两种方式,1:得到总的行数 ... -
POI读取EXCEL教程
2011-09-24 14:22 1782一、Excel基础 二、HSSF概况 三、通过user ... -
有关java中的Date,String,Timestamp之间的转化问题
2011-09-22 17:10 1374一.获取系统当前时间: 1.System.out.print ... -
Hibernate温习(4)--三大类查询总结
2011-09-14 12:49 1297[url]Hibernate目前总共分为三大类查询:creti ... -
hibernate 关系映射 annotation 版
2011-09-06 16:29 1476关于mappedBy 双向关联 ... -
hibernate+spring 注解 对事务的一些信息
2011-09-06 16:27 1579事务注解说明@Transactional 类事务说明机制 ... -
JPA一对多,多对多映射
2011-09-03 23:46 3989JPA(Java Persistence API)是Sun ... -
Rational Rose 生成java代码
2011-08-25 10:26 1917一,正向工程 1、设置默认语言为Java,Tools- ... -
SOA服务设计原则-转载
2011-08-24 10:27 1048这一部分是有关整个 SOA 系统的指南,代表了在建立系统时需要 ...
相关推荐
jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
java里用JFreeChart画柱状图、折线图、雷达图,三个封装好的方法,可以直接调用。
利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错
今天在网上查了一下,没有发现 Jfreechart柱状图排序的实现方法,也还没来得及研究Jfreechart的代码和文档,所以就自己实现了一下。可能jfreechart自身有这个功能,可是发现以前的这个功能无效了,不知道用什么新...
JFreeChart创建柱状图,之前网上很多都是创建柱状图的,静态的。数据更新之后柱状图随之改变,代码实现详见附件代码。所需要的jar包是jfreechart-1.0.13.jar,gnujaxp.jar,jcommon-1.0.16.jar
JFreeChart设置柱状图的宽度,当一个元素时不让显示那么宽。
java+jfreechart+struts 生成柱状图 java jfreechart 柱状图 java jfreechart 柱状图 谁需要完整项目可以去http://download.csdn.net/source/2665347
java的JFreeChart编写柱状图和饼状图及3D饼状图方法
public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 <!--begin 维优特例 --> ...
源文件 博文链接:https://lansky07.iteye.com/blog/227571
java制作jfreechart柱状图 饼状图 折线图 随机数字做的数据源 下载导入即可运行 内含jar包
NULL 博文链接:https://mmk12333.iteye.com/blog/1745642
JFreeChart生成3D饼状图及柱状图,可把图片生成在指定文件目录下
JFreeChart柱状图的详细说明,教你怎么样自定义图形报表 应用到自己的项目上
java 调用jfreechart 实现柱状图、曲线图、饼图,非常简单灵活!超好看!
jfreechart生成的柱状图形。包含了几个整理好的例子。
项目中用到了一些图,要用JFreeChart生成,参考了一些资料,做了两天,分享一下!里面有柱状图,饼状图...
flex jfreechart生成 饼状图 flex jfreechart生成 柱状图 flex jfreechart生成 曲线图 flex jfreechart生成 曲线图
jfreechart 图形折线,饼图,柱状图等各种图形