- JFreeChart 教程
- JFreeChart - 首页
- JFreeChart - 概述
- JFreeChart - 安装
- JFreeChart - 架构
- JFreeChart - 参考 API
- JFreeChart - 饼图
- JFreeChart - 条形图
- JFreeChart - 折线图
- JFreeChart - XY 图
- JFreeChart - 3D 图表/条形图
- JFreeChart - 泡沫图
- JFreeChart - 时间序列图
- JFreeChart - 文件接口
- JFreeChart - 数据库接口
- JFreeChart 有用资源
- JFreeChart - 快速指南
- JFreeChart - 有用资源
- JFreeChart - 讨论
JFreeChart - 饼图
在饼图中,每个扇形的弧长与其表示的数量成正比。本章演示了如何使用 JFreeChart 从给定的业务数据集中创建饼图。
业务数据
以下示例使用饼图描述了手机销量。以下是不同手机品牌及其销量(每天单位)的列表。
序号 | 手机品牌 | 销量(每天单位) |
---|---|---|
1 | Iphone 5S | 20 |
2 | 三星 Grand | 20 |
3 | MOTO G | 40 |
4 | 诺基亚 Lumia | 10 |
基于 AWT 的应用程序
以下是使用上述信息创建饼图的代码。此代码可帮助您将饼图嵌入任何基于 AWT 的应用程序中。
import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class PieChart_AWT extends ApplicationFrame { public PieChart_AWT( String title ) { super( title ); setContentPane(createDemoPanel( )); } private static PieDataset createDataset( ) { DefaultPieDataset dataset = new DefaultPieDataset( ); dataset.setValue( "IPhone 5s" , new Double( 20 ) ); dataset.setValue( "SamSung Grand" , new Double( 20 ) ); dataset.setValue( "MotoG" , new Double( 40 ) ); dataset.setValue( "Nokia Lumia" , new Double( 10 ) ); return dataset; } private static JFreeChart createChart( PieDataset dataset ) { JFreeChart chart = ChartFactory.createPieChart( "Mobile Sales", // chart title dataset, // data true, // include legend true, false); return chart; } public static JPanel createDemoPanel( ) { JFreeChart chart = createChart(createDataset( ) ); return new ChartPanel( chart ); } public static void main( String[ ] args ) { PieChart_AWT demo = new PieChart_AWT( "Mobile Sales" ); demo.setSize( 560 , 367 ); RefineryUtilities.centerFrameOnScreen( demo ); demo.setVisible( true ); } }
让我们将上述 Java 代码保存在PieChart_AWT.java文件中,然后从命令提示符中编译并运行它,如下所示:
$javac PieChart_AWT.java $java PieChart_AWT
如果一切正常,它将编译并运行以生成以下饼图:
如果您不需要将图表嵌入任何应用程序中,则可以在命令提示符下创建图表图像。JFreeChart 允许您将图表图像保存为 JPG 或 PNG 格式。
JPEG 图像创建
让我们重写上述示例以从命令行生成 JPEG 图像。以下是 JFreeChart 库提供的两个 API,您可以使用它们根据您的需要生成 PNG 或 JPEG 图像。
saveChartAsPNG() - 保存 PNG 格式图像的 API。
saveChartAsJPEG() - 保存 JPEG 格式图像的 API。
import java.io.*; import org.jfree.chart.ChartUtilities; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.data.general.DefaultPieDataset; public class PieChart { public static void main( String[ ] args ) throws Exception { DefaultPieDataset dataset = new DefaultPieDataset( ); dataset.setValue("IPhone 5s", new Double( 20 ) ); dataset.setValue("SamSung Grand", new Double( 20 ) ); dataset.setValue("MotoG", new Double( 40 ) ); dataset.setValue("Nokia Lumia", new Double( 10 ) ); JFreeChart chart = ChartFactory.createPieChart( "Mobile Sales", // chart title dataset, // data true, // include legend true, false); int width = 640; /* Width of the image */ int height = 480; /* Height of the image */ File pieChart = new File( "PieChart.jpeg" ); ChartUtilities.saveChartAsJPEG( pieChart , chart , width , height ); } }
让我们将上述 Java 代码保存在PieChart.java文件中,然后从命令提示符中编译并运行它,如下所示:
$javac PieChart.java $java PieChart
如果一切正常,它将编译并运行以在您的当前目录中创建一个名为PieChart.jpeg的 JPEG 图像文件。
广告