再次发关于jfreeChart的帖子(怎么样可以把柱体的宽度设置宽一些)

weichenggao 2008-07-09 02:35:41
代码如下:
通过那里设置可以把柱体的宽度设置大一些.
谢谢拉

import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.Legend;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.StandardCategoryLabelGenerator;
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;

public class jFreeChartExample {

public static void main(String[] args) throws IOException{
JFreeChart chart=ChartFactory.createBarChart(
"2001-2007",
"",//目录轴的显示标签
"股票家数",//数值轴的显示标签
getDataSet(),
PlotOrientation.VERTICAL,//设置图表方向
true,//复杂柱状图
false,
false
);
//取得统计图表的第一个图例
Legend legend =chart.getLegend();

BarRenderer renderer = new BarRenderer();

renderer = new org.jfree.chart.renderer.category.BarRenderer();
renderer.setBaseOutlinePaint(Color.red);
renderer.setMaxBarWidth(1000);
renderer.setMinimumBarLength(1000);

renderer.setSeriesPaint(0, new Color(0, 255, 0), true);//实报柱子的颜色为绿色
renderer.setSeriesOutlinePaint(100, Color.red);//边框为红色

renderer.setSeriesPaint(1, new Color(255, 0, 0), true);//实报柱子的颜色为绿色
renderer.setSeriesOutlinePaint(100, Color.red);//边框为红色
renderer.setItemMargin(0.0001);//组内柱子间隔为组宽的10%

renderer.setLabelGenerator(new StandardCategoryLabelGenerator());
renderer.setItemLabelFont(new Font("黑体", Font.PLAIN, 12));//12号黑体加粗
renderer.setItemLabelPaint(Color.black);//字体为黑色
renderer.setItemLabelsVisible(true);

CategoryPlot plot=(CategoryPlot)chart.getPlot();
plot.setRenderer(renderer);

//
// BarRenderer3D renderer = new BarRenderer3D();
//
// renderer.setLabelGenerator(new StandardCategoryLabelGenerator());
// renderer.setItemLabelFont(new Font("宋体",Font.PLAIN,12));
// renderer.setItemLabelsVisible(true);//显示每个柱子上的数据
// renderer.setMinimumBarLength(1.0);
//
// renderer.setItemLabelsVisible(true);
//
// //设置标题
// chart.setTitle(new TextTitle("股票收益情况统计分析图,时间(2001-2007)",new Font("黑体",Font.PLAIN,22)));
// //设置图表部分
// CategoryPlot plot=(CategoryPlot)chart.getPlot();
// plot.setRenderer(renderer);

CategoryAxis categoryAxis=plot.getDomainAxis();//取得横轴
categoryAxis.setLabelFont(new Font("宋体",Font.PLAIN,14));//设置横轴显示标签的字体
categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);//分类标签以45度倾斜
categoryAxis.setTickLabelFont(new Font("宋体",Font.PLAIN,15));//分类标签字体
NumberAxis numberAxis=(NumberAxis)plot.getRangeAxis();//取得纵轴
numberAxis.setLabelFont(new Font("宋体",Font.BOLD,17));//设置纵轴显示标签字体
FileOutputStream fos=null;
fos=new FileOutputStream("d:\\pic_test.jpg");
ChartUtilities.writeChartAsJPEG(
fos,
1,
chart,
1400,
900,
null

);
fos.close();
}
private static CategoryDataset getDataSet(){

DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(12,"a", "-300%以上");
dataset.addValue(15,"a","-300%");
dataset.addValue(26, "a", "-200%");
dataset.addValue(36, "a", "-150%");
dataset.addValue(78,"a","-120%");
dataset.addValue(51, "a", "-100%");
dataset.addValue(268, "a", "-90%");
dataset.addValue(241, "a", "-80%");
dataset.addValue(129, "a", "-70%");
dataset.addValue(65, "a", "-60%");
dataset.addValue(368, "a", "-50%");
dataset.addValue(269, "a", "-40%");
dataset.addValue(354, "a", "-30%");
dataset.addValue(362, "a", "-20%");
dataset.addValue(82, "a", "-10%");

dataset.addValue(null,"a", "0%");
dataset.addValue(500,"b", "10%");
dataset.addValue(800,"b","20%");
dataset.addValue(800,"b","30%");
dataset.addValue(360, "b", "40%");
dataset.addValue(780,"b","50%");
dataset.addValue(96, "b", "60%");
dataset.addValue(156, "b", "70%");
dataset.addValue(87,"b","80%");
dataset.addValue(87,"b","90%");
dataset.addValue(87,"b","100%");
dataset.addValue(56, "b", "120%");
dataset.addValue(56, "b", "150%");
dataset.addValue(32, "b", "200%");
dataset.addValue(32, "b", "300%");
dataset.addValue(18,"b", "300%以上");

return dataset;
}
}


...全文
238 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengyu2099 2008-07-09
  • 打赏
  • 举报
回复
dataset.addValue(12,"a", "-300%以上");
把 这个添加 值 去掉 其中一个参数 马上就能看出 宽了许多
FL1429 2008-07-09
  • 打赏
  • 举报
回复
没试过。。
我swing开发都是在netbeans做的。。你是的吗?。。。。。一般界面问题在netbeans中都能搞定的(拖拽)
night__cat 2008-07-09
  • 打赏
  • 举报
回复
哪个柱体

62,614

社区成员

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

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