You can set
custom labels for legend of a piechart. If you want custom label you can do it
by using “setLegendLabelGenerator”
method of PiePlot.
plot.setLegendLabelGenerator(new
StandardPieSectionLabelGenerator("{0} ({2})"));
Generator
use Java’s MessageFormat class to construct labels. {0}, {1} in the above example has special
meaning.
Key
|
Descriptions
|
{0}
|
Take
Section key as a string
|
{1}
|
Take section
value
|
{2}
|
Take
section value as a percentage of all values in the data set.
|
import java.awt.Color; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.JFreeChart; import org.jfree.chart.labels.StandardPieSectionLabelGenerator; import org.jfree.chart.plot.PiePlot; import org.jfree.data.general.DefaultPieDataset; public class Main { public static void main(String args[]) { /* Create dataset */ DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("2004-2005", 58); dataset.setValue("2005-2006", 41); dataset.setValue("2006-2007", 85.3); dataset.setValue("2007-2008", 81); /* create chart */ JFreeChart chart = ChartFactory.createPieChart("Simple Piechart", dataset); /* Get PiePlot object */ PiePlot plot = (PiePlot) chart.getPlot(); /* Set colors to sections */ plot.setSectionPaint("2004-2005", new Color(255, 0, 0)); plot.setSectionPaint("2005-2006", new Color(0, 255, 0)); plot.setSectionPaint("2006-2007", new Color(0, 0, 255)); plot.setSectionPaint("2007-2008", new Color(0, 0, 0)); /* Disable outlines */ plot.setOutlineVisible(true); /* Set custom labels for section*/ plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} ({2})")); /* Set custom label for legend */ plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0} ({2})")); /* create and display chart on frame */ ChartFrame frame = new ChartFrame("JFreeChart Demo", chart); frame.pack(); frame.setVisible(true); } }
No comments:
Post a Comment