JFreechart教程

JFreeChart 饼图

JFreeChart-Pie Chart

饼图是一个圆形图,它被分成多个扇区,其中每个扇区的面积代表数据的大小。
下图显示了一些包含在 JFreeChart 库中的饼图演示版本:
饼图演示 1:
JFreeChart 饼图演示 1
饼图演示 2:
JFreeChart 饼图演示 2
饼图演示 4:
JFreeChart 饼图演示 4

饼图示例

让我们考虑一个班级分数分布的样本数据。
标记范围 学生人数
80-100 120
60-79 80
40-59 20
20-39 7
0-19 3
以下代码根据上述示例数据创建饼图:

PieChartExample.java

import java.text.DecimalFormat;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.PieSectionLabelGenerator;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
public class PieChartExample extends JFrame {
  private static final long serialVersionUID = 6294689542092367723L;
  public PieChartExample(String title) {
    super(title);
    // Create dataset
    PieDataset dataset = createDataset();
    // Create chart
    JFreeChart chart = ChartFactory.createPieChart(
        "Pie Chart Example",
        dataset,
        true, 
        true,
        false);
    //Format Label
    PieSectionLabelGenerator labelGenerator = new StandardPieSectionLabelGenerator(
        "Marks {0} : ({2})", new DecimalFormat("0"), new DecimalFormat("0%"));
    ((PiePlot) chart.getPlot()).setLabelGenerator(labelGenerator);
    
    // Create Panel
    ChartPanel panel = new ChartPanel(chart);
    setContentPane(panel);
  }
  private PieDataset createDataset() {
    DefaultPieDataset dataset=new DefaultPieDataset();
    dataset.setValue("80-100", 120);
    dataset.setValue("60-79", 80);
    dataset.setValue("40-59", 20);
    dataset.setValue("20-39", 7);
    dataset.setValue("0-19", 3);
    return dataset;
  }
  public static void main(String[] args) {
    SwingUtilities.invokeLater(()-> {
      PieChartExample example = new PieChartExample(?Pie Chart Example?);
      example.setSize(800, 400);
      example.setLocationRelativeTo(null);
      example.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      example.setVisible(true);
    });
  }
}
    
输出:
JFreeChart 饼图示例
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4