📜  JFreeChart-饼图(1)

📅  最后修改于: 2023-12-03 15:16:39.906000             🧑  作者: Mango

JFreeChart-饼图

简介

JFreeChart是一个用Java编写的开源图表库,提供了丰富的图表和统计功能。其中之一就是饼图(Pie Chart),可以用于展示数据的占比关系。

特点
  • 支持生成高质量的饼图,包括带有标签、图例、工具提示等等。
  • 提供了丰富的配置选项,可以自定义饼图的外观和行为。
  • 可以通过编程方式生成饼图,也可以从各种数据源中读取数据并自动生成饼图。
  • 支持导出饼图为图片或者其他格式,方便在其他应用程序中使用。
安装

要使用JFreeChart的饼图功能,首先需要在项目中添加JFreeChart的依赖。可以通过Maven或者手动下载JAR文件的方式添加依赖。

Maven依赖:

<dependency>
    <groupId>org.jfree</groupId>
    <artifactId>jfreechart</artifactId>
    <version>1.5.3</version>
</dependency>

手动下载JAR文件:JFreeChart下载地址

使用示例

下面是一个简单的示例代码,演示如何使用JFreeChart创建一个简单的饼图。

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;

import javax.swing.*;
import java.awt.*;

public class PieChartExample extends JFrame {

    public PieChartExample(String title) {
        super(title);

        // 创建数据集
        DefaultPieDataset dataset = new DefaultPieDataset();
        dataset.setValue("Java", 50);
        dataset.setValue("Python", 30);
        dataset.setValue("C++", 20);

        // 创建饼图
        JFreeChart chart = ChartFactory.createPieChart(
                "Programming Language Popularity",  // 图表标题
                dataset,                           // 数据集
                true,                              // 显示图例
                true,                              // 生成工具提示
                false                              // 生成URL链接
        );

        // 设置饼图属性
        PiePlot plot = (PiePlot) chart.getPlot();
        plot.setLabelFont(new Font("SansSerif", Font.PLAIN, 12));
        plot.setNoDataMessage("No data available");
        plot.setCircular(true);

        // 创建图表面板并添加到窗口
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new Dimension(500, 300));
        setContentPane(chartPanel);
    }

    public static void main(String[] args) {
        PieChartExample example = new PieChartExample("Pie Chart Example");
        example.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        example.pack();
        example.setVisible(true);
    }
}

运行以上代码,将会创建一个带有三个扇形区域的饼图,分别表示Java、Python和C++的比例关系。

其他功能

除了基本的饼图功能之外,JFreeChart还提供了更多的功能和图表类型供开发者使用,比如条形图、折线图、散点图等。开发者可以通过JFreeChart的API文档和示例代码来学习如何使用这些功能。

总结

使用JFreeChart的饼图功能,可以方便地生成漂亮的饼图来展示数据的占比关系。它提供了丰富的配置选项,可以根据需要自定义饼图的外观和行为。同时,JFreeChart还支持导出饼图为图片或其他格式,方便在其他应用程序中使用。