200分,哪位高人有用JFreeChart 画出柱状图后,手动控制其bar宽度的经验?

silverend 2006-07-27 12:07:17
如题,
用JFreeChart画出柱状bar图后(共7条),柱子的宽度太小,试问达人怎样控制其宽度?

API的BarRenderer的用法中:对MaxBarWidth、MinimumBarLength、ItemMargin都进行过set,但效果均不明显;
还恳请有经验的人请教。

抑或是修改其他类的属性?
...全文
683 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
horse_h 2006-08-17
  • 打赏
  • 举报
回复
有没有试过负数呢?我用负数效果很好哈。
silverend 2006-07-31
  • 打赏
  • 举报
回复
没能得到满意的答复,还是结了吧;

renderer.setItemMargin(……)如果可以设好的话,早成功了,不知道试过多少不同的数;

ray_1981 2006-07-27
  • 打赏
  • 举报
回复
没做过!学习!
关注!
everyluck 2006-07-27
  • 打赏
  • 举报
回复
没弄过,
帮顶一下。
Sunny319 2006-07-27
  • 打赏
  • 举报
回复
renderer.setItemMargin(0.1);应该可哟哦,那个可以设置柱子之间的距离哦 ,你可以把图片设置大点!
silverend 2006-07-27
  • 打赏
  • 举报
回复
renderer.setItemMargin(……)
只有这个函数可以调用,稍微改变下图形柱的宽度,但很不明显;

其他的各个属性都试过很多,不起作用;
silverend 2006-07-27
  • 打赏
  • 举报
回复
楼上用的 returChart 是哪个类的,怎没发现有setWidth(……), setHeight(……)这么好的函数?
weky 2006-07-27
  • 打赏
  • 举报
回复
我做的柱状图是根据图形设置的大小来定义每一个柱的宽度的,如:
returChart.setWidth(400);
returChart.setHeight(200);
silverend 2006-07-27
  • 打赏
  • 举报
回复
画图函数如下:
try {
ArrayList list = volumeValues; //数值LIST,图的纵坐标值

// Throw a custom NoDataException if there is no data
if (list.size() == 0) {
System.out.println("No data has been found");
throw new NoDataException();
}

// Create and populate a CategoryDataset
Iterator iter = list.listIterator();
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
int i = 0;
while (iter.hasNext()){ //datas为周一到周日的LIST,为 横坐标
Integer volume = (Integer)iter.next();
dataset.addValue(new Integer((volume != null) ? volume.toString() : "0"),
(String)dates.get(i), (String)dates.get(i));
i ++;
}

// Create the chart object
CategoryAxis categoryAxis = new CategoryAxis("");
ValueAxis valueAxis = new NumberAxis("");
BarRenderer renderer = new BarRenderer();

renderer.setItemMargin(0.08);
// renderer.setMaxBarWidth(0.1);
// renderer.setMinimumBarLength(10);
System.out.println("ItemMargin:" + renderer.getItemMargin());
System.out.println("MaxBarWidth:" + renderer.getMaxBarWidth());
renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());

Plot plot = new CategoryPlot(dataset, categoryAxis, valueAxis, renderer);
Font chineseFont = new Font("SimSung", Font.BOLD, 18);
JFreeChart chart = new JFreeChart("", chineseFont, plot, false);
chart.setBackgroundPaint(java.awt.Color.white);

// Write the chart image to the temporary directory
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, 500, 250, info, session);

// Write the image map to the PrintWriter
ChartUtilities.writeImageMap(pw, filename, info);
pw.flush();

System.out.println("BarChart:"+filename);
} catch (NoDataException e) {
System.out.println(e.toString());
filename = "public_nodata_500x300.png";
} catch (Exception e) {
System.out.println("Exception - " + e.toString());
e.printStackTrace(System.out);
filename = "public_error_500x300.png";
}
OnlyFor_love 2006-07-27
  • 打赏
  • 举报
回复
不太了解这东西 顶一下 支持支持 关注关注
TinyJimmy 2006-07-27
  • 打赏
  • 举报
回复
这个好象是没有得设置得吧, 在excel好像都没有设置哦
薛定谔之死猫 2006-07-27
  • 打赏
  • 举报
回复
帮顶
congliu 2006-07-27
  • 打赏
  • 举报
回复
你把代码贴出来

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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