package charts;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
public class Pie {
public void DrawChart() {
DefaultPieDataset pieDataSet = new DefaultPieDataset();
pieDataSet.setValue("C", new Integer(10));
pieDataSet.setValue("C++", new Integer(20));
pieDataSet.setValue("JAVA", new Integer(50));
pieDataSet.setValue("C#", new Integer(40));
JFreeChart chart = ChartFactory.createPieChart3D("MY CHART",
pieDataSet, false, false, true);
ChartFrame frame = new ChartFrame("Usage Trend", chart);
frame.setVisible(true);
frame.setSize(300, 300);
}
public static void main(String[] args) {
Pie pie = new Pie();
pie.DrawChart();
}
}
上面的代码将生成一个饼图,其中切片为“C,C ++,Java和C#”,但我想显示值而不是名称。
我应该做些什么修改?
答案 0 :(得分:2)
像
这样的东西pieDataSet.setValue("50", new Integer(50));
或
pieDataSet.setValue("Java(50)", new Integer(50));
或
pieDataSet.setValue("Java[50]", new Integer(50));
或
pieDataSet.setValue("Java:50", new Integer(50));
另一种方法是使用
启用工具提示JFreeChart chart = ChartFactory.createPieChart3D("MY CHART",
pieDataSet, false, true, true);
工具提示显示名称和值。
答案 1 :(得分:2)
我希望价值部分分开,沿着关键字作为传奇。
您可以使用StandardPieSectionLabelGenerator
。
PiePlot plot = (PiePlot) chart.getPlot();
plot.setLegendLabelGenerator(new
StandardPieSectionLabelGenerator("{0}: {2}"));