I am trying to create a Stacked Bar Chart. My requirement is I need percentage composition inside the bar and total count on top of the Bar. Please suggest solutions.
My Requirement:
Sample : http://www.jfree.org/jfreechart/api/javadoc/images/StackedBarRenderer3DSample.png
I want percentage composition inside the bar and total composition on the top of the bar.
It's not clear what you are doing now, but using a StackedBarRenderer
with setRenderAsPercentages(true)
will display the percentages. To get the total, extend StackedBarRenderer
, loop through the dataset for each column, and override drawItem()
to draw the result. An example may be found in the JFreeChart Demo as part of StackedBarChartDemo3
.
As an alternative, consider a custom CategoryToolTipGenerator
, added via setBaseToolTipGenerator()
.
Addendum: You linked to an example using StackedBarRenderer3D
, which also has a setRenderAsPercentages()
method. It can be extended similarly.
I ran into the same problem too. For some reason the latest version of JFreeChart does not display the percentage composition inside the bar. Here's how I got it to work:
StackedBarRenderer br = new StackedBarRenderer(true); //enable perc. display
br.setBarPainter(new StandardBarPainter());
br.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
br.setBaseItemLabelsVisible(true);
chart.getCategoryPlot().setRenderer(br);
Hope this helps