java如何画饼图
使用JFreeChart绘制饼图
JFreeChart是一个流行的Java图表库,可以轻松创建各种图表,包括饼图。以下是使用JFreeChart绘制饼图的步骤:
-
添加JFreeChart依赖 在Maven项目中,添加以下依赖到pom.xml文件:
<dependency> <groupId>org.jfree</groupId> <artifactId>jfreechart</artifactId> <version>1.5.3</version> </dependency> -
创建饼图数据集
DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("Category 1", 43.2); dataset.setValue("Category 2", 27.9); dataset.setValue("Category 3", 18.5); dataset.setValue("Category 4", 10.4); -
创建饼图对象
JFreeChart chart = ChartFactory.createPieChart( "Sample Pie Chart", // 图表标题 dataset, // 数据集 true, // 是否显示图例 true, // 是否显示工具提示 false // 是否生成URL链接 ); -
自定义图表外观
PiePlot plot = (PiePlot) chart.getPlot(); plot.setSectionPaint("Category 1", Color.RED); plot.setSectionPaint("Category 2", Color.BLUE); plot.setSectionPaint("Category 3", Color.GREEN); plot.setSectionPaint("Category 4", Color.YELLOW); -
显示或保存图表

ChartFrame frame = new ChartFrame("Pie Chart", chart); frame.pack(); frame.setVisible(true);
使用JavaFX绘制饼图
JavaFX提供了内置的图表组件,可以方便地创建饼图:
-
创建PieChart.Data对象
ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList( new PieChart.Data("Category 1", 43.2), new PieChart.Data("Category 2", 27.9), new PieChart.Data("Category 3", 18.5), new PieChart.Data("Category 4", 10.4) ); -
创建PieChart对象
PieChart chart = new PieChart(pieChartData); chart.setTitle("Sample Pie Chart"); -
添加到场景并显示

StackPane root = new StackPane(); root.getChildren().add(chart); Scene scene = new Scene(root, 500, 400); primaryStage.setScene(scene); primaryStage.show();
使用XChart绘制饼图
XChart是一个轻量级的Java图表库:
-
添加XChart依赖
<dependency> <groupId>org.knowm.xchart</groupId> <artifactId>xchart</artifactId> <version>3.8.1</version> </dependency> -
创建饼图
PieChart chart = new PieChartBuilder().width(800).height(600).title("Sample Pie Chart").build(); chart.addSeries("Category 1", 43.2); chart.addSeries("Category 2", 27.9); chart.addSeries("Category 3", 18.5); chart.addSeries("Category 4", 10.4); -
显示图表
new SwingWrapper<>(chart).displayChart();
每种方法都有其特点:JFreeChart功能强大但配置复杂,JavaFX适合GUI应用,XChart简单易用但功能较少。根据项目需求选择合适的库。






