How can this compilable minimal code snippet example, which uses JFreeChart as plotting API, adapted in order to show both absoulte values AND percentages? I couldn't extract this information neither from any code snippet on the internet nor from the JFreechart manual itself. The code snippet produces a pie chart showing only percentages. The absolute values in my case also matter, so i need to display them right under the percentages.
Here is the code: (Note it lacks the imports)
public class MyMinimalPieChartExample {
public static void main(String[] args) {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("some data 1",99);
dataset.setValue("some data 2", 77);
//third adaption
JFreeChart someChart = ChartFactory.createPieChart(
"some chart header", dataset,
true, true, false);
PiePlot illegalLegalRestPiePlot4 = (PiePlot) someChart.getPlot();
illegalLegalRestPiePlot4.setSectionPaint("some data 1", new Color(0, 255, 0));
illegalLegalRestPiePlot4.setSectionPaint("some data 2",
new Color(255, 0, 0));
PiePlot plot4 = (PiePlot) someChart.getPlot();
plot4.setExplodePercent("some data 1", 0.4);
plot4.setSimpleLabels(true);
PieSectionLabelGenerator generator = new StandardPieSectionLabelGenerator(
"{0} = {2}", new DecimalFormat("0"), new DecimalFormat("0.00%"));
plot4.setLabelGenerator(generator);
try {
ChartUtilities.saveChartAsJPEG(new File("C:/myMinimalPieChartExample.jpeg"),
someChart, 1200, 1000);
} catch (Exception e) {
System.err.println("couldn't write chart");
}
}
}
NumberFormat
instead ofDecimalFormat
it may look likePieSectionLabelGenerator gen = new StandardPieSectionLabelGenerator( "{0}: {1} ({2})", NumberFormat.getInstance(), NumberFormat.getPercentInstance()); plot.setLabelGenerator(gen);
– Moniliform