jfreechart 柱状如何图取消渐变效果

cx170817965 2010-12-15 03:43:53
jfreechart 生成柱状图时会自动使用颜色渐变效果,如何取消颜色渐变效果改为纯色?
...全文
338 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cx170817965 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 eswn 的回复:]

把这个放到你的类中:
static {
BarRenderer.setDefaultBarPainter(new StandardBarPainter());
}
或确保它一定最先执行。
[/Quote]

这个不行 上面的引用错了 我的是jfreechart1.0.13版本
cx170817965 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cx170817965 的回复:]

不是的 默认就是渐变的 ChartFactory.createBarChart()方法
[/Quote]

这个试过了 不行
salever 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cx170817965 的回复:]

不是的 默认就是渐变的 ChartFactory.createBarChart()方法
[/Quote]

看来我out了,可能是版本升级后的效果。。。。。。。。
cx170817965 2010-12-16
  • 打赏
  • 举报
回复
原来不是一个函数 。。
cx170817965 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 eswn 的回复:]

看这里吧:
Java code


BarRenderer customBarRenderer = (BarRenderer) localCategoryPlot
.getRenderer();
customBarRenderer.setBarPainter( new StandardBarPainter() );
……
[/Quote]

这样真的可以了 但是为什么写在上面就可以 写在下面就不行呢
eswn 2010-12-16
  • 打赏
  • 举报
回复
看这里吧:


BarRenderer customBarRenderer = (BarRenderer) localCategoryPlot
.getRenderer();
customBarRenderer.setBarPainter( new StandardBarPainter() );
customBarRenderer.setItemMargin(-0.01);
cx170817965 2010-12-16
  • 打赏
  • 举报
回复
        ChartRenderingInfo info = new ChartRenderingInfo();
CategoryDataset dataset = this.createDataset3();

// CategoryDataset dataset1 = new DefaultCategoryDataset();

JFreeChart chart = ChartFactory.createBarChart("积分柱状图",
"积分柱状图", null, dataset,
PlotOrientation.VERTICAL, true, true, false);
Font font = new Font("黑体", Font.CENTER_BASELINE, 30);

chart.setBorderPaint(Color.black);
chart.setBorderVisible(true);
chart.setBackgroundPaint(Color.white);

// 设置图例靠右显示
chart.getLegend().setPosition(RectangleEdge.RIGHT);

TextTitle localTextTitle = chart.getTitle();
localTextTitle.setPaint(Color.white);
localTextTitle.setPosition(RectangleEdge.TOP);
localTextTitle.setBackgroundPaint(Color.decode("#333399"));
localTextTitle.setExpandToFitSpace(true);
localTextTitle.setFont(font);

CategoryPlot localCategoryPlot = (CategoryPlot) chart.getPlot();

NumberAxis localNumberAxis = (NumberAxis) localCategoryPlot
.getRangeAxis();
// localNumberAxis.setStandardTickUnits(NumberAxis
// .createIntegerTickUnits());
// localNumberAxis.setRange(0D, 300D);
localNumberAxis.setTickUnit(new NumberTickUnit(50D));

localCategoryPlot.setNoDataMessage("NO DATA!");
localCategoryPlot.setBackgroundPaint(Color.white);
// // localCategoryPlot
// // .setInsets(new RectangleInsets(10.0D, 5.0D, 5.0D, 5.0D));
localCategoryPlot.setOutlinePaint(Color.black);
localCategoryPlot.setRangeGridlinePaint(Color.gray);
localCategoryPlot.setRangeGridlineStroke(new BasicStroke(1.5F));

BarRenderer customBarRenderer = (BarRenderer) localCategoryPlot
.getRenderer();
customBarRenderer.setItemMargin(-0.01);
// customBarRenderer.setMaximumBarWidth(0.15);
customBarRenderer.setShadowVisible(false);
// customBarRenderer.setItemLabelFont(font);

// 设置标题的字体
TextTitle title = chart.getTitle();
title.setFont(font);

// 设置 X 坐标名称的字体

Font font1 = new Font("黑体", 0, 18);
// localCategoryPlot.getDomainAxis().setTickLabelFont(font1);
localCategoryPlot.getDomainAxis().setLabelFont(font1);

// 设置 Y 坐标名称的字体
localCategoryPlot.getRangeAxis().setLabelFont(font);

// // 设置图例的字体
chart.getLegend().setItemFont(font1);

customBarRenderer.setDefaultBarPainter(new StandardBarPainter());
try {

name = ServletUtilities.saveChartAsJPEG(chart, 900, 500, info,
ServletActionContext.getRequest().getSession());

}
catch (IOException e) {
e.printStackTrace();
}




代码是这样的
eswn 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cx170817965 的回复:]

引用 6 楼 eswn 的回复:

把这个放到你的类中:
static {
BarRenderer.setDefaultBarPainter(new StandardBarPainter());
}
或确保它一定最先执行。


这个不行 上面的引用错了 我的是jfreechart1.0.13版本
[/Quote]


我以前用的就是这个,这个设置在jfreechart1.0.13,jfreechart1.0.12,jfreechart1.0.11全部好用
不知楼主是不是在后面地方又改theme了?
例如:
ChartUtilities.applyCurrentTheme(chart);
楼主最好知道自已的每一句代码在做什么,不然大家也很难帮到你。

eswn 2010-12-15
  • 打赏
  • 举报
回复
把这个放到你的类中:
static {
BarRenderer.setDefaultBarPainter(new StandardBarPainter());
}
或确保它一定最先执行。
cx170817965 2010-12-15
  • 打赏
  • 举报
回复
不是的 默认就是渐变的 ChartFactory.createBarChart()方法
salever 2010-12-15
  • 打赏
  • 举报
回复
我记得默认的是纯色的,不是渐变的,你是不是配置了什么参数了,或者用错了chart的类型了? 自己去查api吧
Jlins 2010-12-15
  • 打赏
  • 举报
回复
http://www.javaeye.com/topic/122450
liju123456 2010-12-15
  • 打赏
  • 举报
回复
完全是路过

50,550

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧