jfreechart 生成一个扇区颜色不同,百分比显示的饼图
时间: 2024-03-27 08:37:13 浏览: 94
JFreeChart生成饼图
生成一个扇区颜色不同,百分比显示的饼图,您可以使用 JFreeChart 库来完成。
下面是一个简单的示例代码,用于生成一个扇区颜色不同,百分比显示的饼图:
```java
import java.awt.Color;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
public class PieChartExample {
public static void main(String[] args) {
// 创建一个数据集
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Java", 43.2);
dataset.setValue("C", 17.5);
dataset.setValue("Python", 18.2);
dataset.setValue("PHP", 11.0);
dataset.setValue("Ruby", 10.1);
// 创建一个饼图
JFreeChart chart = ChartFactory.createPieChart(
"编程语言市场份额", // 图表标题
dataset, // 数据集
true, // 是否显示图例
true, // 是否显示工具提示
false // 是否生成URL
);
// 设置扇区颜色
PiePlot plot = (PiePlot) chart.getPlot();
plot.setSectionPaint("Java", new Color(200, 255, 200));
plot.setSectionPaint("C", new Color(255, 200, 200));
plot.setSectionPaint("Python", new Color(200, 200, 255));
plot.setSectionPaint("PHP", new Color(255, 255, 200));
plot.setSectionPaint("Ruby", new Color(200, 255, 255));
// 设置百分比显示
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} ({2})"));
plot.setLabelBackgroundPaint(new Color(220, 220, 220));
plot.setLabelFont(new Font("SansSerif", Font.PLAIN, 12));
// 显示图表
ChartFrame frame = new ChartFrame("编程语言市场份额", chart);
frame.pack();
frame.setVisible(true);
}
}
```
在这个示例代码中,我们使用了 `DefaultPieDataset` 类来创建数据集,使用 `ChartFactory.createPieChart()` 方法创建饼图。然后,我们使用 `PiePlot.setSectionPaint()` 方法设置扇区颜色,并使用 `PiePlot.setLabelGenerator()` 方法设置百分比显示。
最后,我们创建了一个 `ChartFrame` 对象,将图表显示在窗口中。
您可以根据需要修改代码中的数值和颜色,以生成您想要的饼图。
阅读全文