此篇主要用到重叠效果
关键代码:
[java] view plaincopy
CategoryPlot plot = chart.getCategoryPlot();//获得图表区域对象
//设置图表的纵轴和横轴org.jfree.chart.axis.CategoryAxis
org.jfree.chart.axis.CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setLowerMargin(0.1);//设置距离图片左端距离此时为10%
domainAxis.setUpperMargin(0.1);//设置距离图片右端距离此时为百分之10
domainAxis.setCategoryLabelPositionOffset(10);//图表横轴与标签的距离(10像素)
domainAxis.setCategoryMargin(0.2);//横轴标签之间的距离20%
domainAxis.setMaximumCategoryLabelLines(1);
domainAxis.setMaximumCategoryLabelWidthRatio(0);
//设定柱子的属性
// org.jfree.chart.axis.ValueAxis rangeAxis = plot.getRangeAxis();
//
// rangeAxis.setUpperMargin(0.1);//设置最高的一个柱与图片顶端的距离(最高柱的10%)
//
//
//
// //设置图表的颜色
//
org.jfree.chart.renderer.category.BarRenderer renderer;
renderer = new org.jfree.chart.renderer.category.BarRenderer();
//
// renderer.setBaseOutlinePaint(Color.red);
//
// renderer.setSeriesPaint(0, new Color(0, 255, 255));//计划柱子的颜色为青色
//
// renderer.setSeriesOutlinePaint(0,Color.BLACK);//边框为黑色
//
// renderer.setSeriesPaint(1, new Color(0, 255, 0));//实报柱子的颜色为绿色
//
// renderer.setSeriesOutlinePaint(1,Color.red);//边框为红色
//
renderer.setItemMargin(-0.1);//组内柱子间隔为组宽的10%
//
// //显示每个柱的数值,并修改该数值的字体属性
//
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
//
renderer.setItemLabelFont(new Font("黑体",Font.BOLD,12));//12号黑体加粗
//
renderer.setItemLabelPaint(Color.black);//字体为黑色
//
renderer.setItemLabelsVisible(true);
NumberFormat nf= NumberFormat.getNumberInstance();
StandardCategoryToolTipGenerator generator=new StandardCategoryToolTipGenerator(StandardCategoryToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT_STRING,nf);
renderer.setToolTipGenerator(generator);
plot.setRenderer(renderer);//使用我们设计的效果