LayeredBarRenderer : adding the labels to bars in BarChart

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
Pellegrino
Posts: 16
Joined: Wed Jun 17, 2009 5:00 pm

LayeredBarRenderer : adding the labels to bars in BarChart

Post by Pellegrino » Wed Jul 22, 2009 2:51 pm

Hello,

I have a problem with showing the labels for one bar in BarChart. They are not just visible! Is it a bug?

Code: Select all

      //StackedBarRenderer renderer = new StackedBarRenderer();
	    LayeredBarRenderer renderer = new LayeredBarRenderer();
	    renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
	    renderer.setBaseItemLabelFont(Constants.STANDARD_FONT_ST);
	    renderer.setBaseItemLabelPaint(Color.black);
	    renderer.setBaseItemLabelsVisible(true);
	    if(legend){
	    	for(int i = 0; i < dataset.getRowCount(); i++)
	    		renderer.setLegendTextFont(i, Constants.SMALL_FONT_ST);
	    }
	    renderer.setItemMargin(0.01);
	    renderer.setSeriesBarWidth(0, 1.0);
	    renderer.setSeriesBarWidth(1, 0.4);
	    renderer.setSeriesPaint(1,new Color(77, 159, 120));
	    renderer.setSeriesPaint(0, Color.yellow);
	    
	    CategoryAxis domainAxis = new CategoryAxis();
	    domainAxis.setCategoryMargin(0.25);
	    domainAxis.setUpperMargin(0.05);
	    domainAxis.setLowerMargin(0.05);
	    domainAxis.setLabel(domainAxesLabel);
	    domainAxis.setLabelFont(labelFont);
	    domainAxis.setTickLabelFont(tickLabelFont);
	    
	    ValueAxis valueAxis = new NumberAxis();
	    valueAxis.setLabel(rangeAxesLabel);
	    valueAxis.setLabelFont(labelFont);
	    valueAxis.setTickLabelFont(tickLabelFont);
	    
		CategoryPlot plot = new CategoryPlot(dataset, domainAxis, valueAxis, renderer);
	    plot.setDomainGridlinePaint(Color.white);
		plot.setRangeGridlinePaint(Color.white);
		Marker marker = new ValueMarker(1.67d, Color.black, new BasicStroke());
		plot.addRangeMarker(marker);
	    
		JFreeChart chart = new JFreeChart(title,
											labelFont, 
											plot, 
											legend);
		chart.setBackgroundPaint(Color.white);
		chart.getLegend().setFrame(BlockBorder.NONE);
Thanx for any help!

Pellegrino
Posts: 16
Joined: Wed Jun 17, 2009 5:00 pm

Re: LayeredBarRenderer : adding the labels to bars in BarChart

Post by Pellegrino » Tue Jul 28, 2009 2:29 pm

I need quickly fix this problem!... Thanx

Pellegrino
Posts: 16
Joined: Wed Jun 17, 2009 5:00 pm

Re: LayeredBarRenderer : adding the labels to bars in BarChart

Post by Pellegrino » Thu Sep 17, 2009 3:04 pm

Here is an answer

Code: Select all

final LayeredBarRenderer renderer2 = new LayeredBarRenderer();
        StandardCategoryItemLabelGenerator categoryLabel = new StandardCategoryItemLabelGenerator("{2}",new DecimalFormat( "###.##" ));
        renderer2.setBaseItemLabelGenerator(categoryLabel);
        renderer2.setBaseItemLabelsVisible(true);
        renderer2.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.INSIDE12, TextAnchor.TOP_CENTER));
        renderer2.setBaseItemLabelFont(ReportConstants.STANDARD_FONT_ST);
        renderer2.setBaseItemLabelPaint(Color.black);
        renderer2.setBaseLegendTextFont(ReportConstants.SMALL_ARIAL_FONT_ST);
        renderer2.setItemMargin(0.01);
        renderer2.setSeriesBarWidth(0, 0.6);
        renderer2.setSeriesPaint(0, Color.yellow);

candinho85
Posts: 2
Joined: Fri Oct 30, 2009 6:36 pm
antibot: No, of course not.

Re: LayeredBarRenderer : adding the labels to bars in BarChart

Post by candinho85 » Fri Oct 30, 2009 6:43 pm

Pellegrino wrote:Here is an answer

Code: Select all

final LayeredBarRenderer renderer2 = new LayeredBarRenderer();
        StandardCategoryItemLabelGenerator categoryLabel = new StandardCategoryItemLabelGenerator("{2}",new DecimalFormat( "###.##" ));
        renderer2.setBaseItemLabelGenerator(categoryLabel);
        renderer2.setBaseItemLabelsVisible(true);
        renderer2.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.INSIDE12, TextAnchor.TOP_CENTER));
        renderer2.setBaseItemLabelFont(ReportConstants.STANDARD_FONT_ST);
        renderer2.setBaseItemLabelPaint(Color.black);
        renderer2.setBaseLegendTextFont(ReportConstants.SMALL_ARIAL_FONT_ST);
        renderer2.setItemMargin(0.01);
        renderer2.setSeriesBarWidth(0, 0.6);
        renderer2.setSeriesPaint(0, Color.yellow);

Hi, you have only two bars right?
You set each color, but if i need more bars? Do you Know?

Pellegrino
Posts: 16
Joined: Wed Jun 17, 2009 5:00 pm

Re: LayeredBarRenderer : adding the labels to bars in BarChart

Post by Pellegrino » Thu Nov 12, 2009 11:35 am

You can do next:

Code: Select all

          Color[dataset.getRowCount()] colorList = { Color.red, Color.white ... Color.black};
          for(int i = 0; i < dataset.getRowCount(); i++)
              renderer.setSeriesPaint(i,colorList[i]);

Locked