JFreeChart条形图 JFreeChart饼图 JFreeChart折线图 本章演示如何使用JFreeChart 从一组给定的业务数据创建 条形图 。 条形图使用不同的方向(水平或垂直)条显示各种类别的比较。图表的一个轴(域轴)显示正在比较的特定域,而另一个轴(范围轴)表示离散值。 业务数据 以下示例在条形图的帮助下描述了各种汽车统计数据。以下是汽车品牌及其不同特征的列表,我们将使用条形图显示 - 汽车 速度 用户评分 Millage 安全 **菲亚特** 1.0 3.0 5 5 **奥迪** 5 6 10.0 4 **涉** 4 2.0 3.0 6 基于AWT的应用程序 以下是根据上述信息创建条形图的代码。此代码可帮助您在任何基于AWT的应用程序中嵌入条形图。 import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class BarChart_AWT extends ApplicationFrame { public BarChart_AWT( String applicationTitle , String chartTitle ) { super( applicationTitle ); JFreeChart barChart = ChartFactory.createBarChart( chartTitle, "Category", "Score", createDataset(), PlotOrientation.VERTICAL, true, true, false); ChartPanel chartPanel = new ChartPanel( barChart ); chartPanel.setPreferredSize(new java.awt.Dimension( 560 , 367 ) ); setContentPane( chartPanel ); } private CategoryDataset createDataset( ) { final String fiat = "FIAT"; final String audi = "AUDI"; final String ford = "FORD"; final String speed = "Speed"; final String millage = "Millage"; final String userrating = "User Rating"; final String safety = "safety"; final DefaultCategoryDataset dataset = new DefaultCategoryDataset( ); dataset.addValue( 1.0 , fiat , speed ); dataset.addValue( 3.0 , fiat , userrating ); dataset.addValue( 5.0 , fiat , millage ); dataset.addValue( 5.0 , fiat , safety ); dataset.addValue( 5.0 , audi , speed ); dataset.addValue( 6.0 , audi , userrating ); dataset.addValue( 10.0 , audi , millage ); dataset.addValue( 4.0 , audi , safety ); dataset.addValue( 4.0 , ford , speed ); dataset.addValue( 2.0 , ford , userrating ); dataset.addValue( 3.0 , ford , millage ); dataset.addValue( 6.0 , ford , safety ); return dataset; } public static void main( String[ ] args ) { BarChart_AWT chart = new BarChart_AWT("Car Usage Statistics", "Which car do you like?"); chart.pack( ); RefineryUtilities.centerFrameOnScreen( chart ); chart.setVisible( true ); } } 让我们将上面的Java代码保存在 BarChart_AWT.java 文件中,然后从提示的命令中编译并运行它 - $javac BarChar_AWT.java $java BarChart_AWT 如果一切正常,它将编译并运行以生成以下条形图 - JPEG图像创建 让我们重写上面的例子,从命令行生成一个JPEG图像。 import java.io.*; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.chart.ChartUtilities; public class BarChart { public static void main( String[ ] args )throws Exception { final String fiat = "FIAT"; final String audi = "AUDI"; final String ford = "FORD"; final String speed = "Speed"; final String millage = "Millage"; final String userrating = "User Rating"; final String safety = "safety"; final DefaultCategoryDataset dataset = new DefaultCategoryDataset( ); dataset.addValue( 1.0 , fiat , speed ); dataset.addValue( 3.0 , fiat , userrating ); dataset.addValue( 5.0 , fiat , millage ); dataset.addValue( 5.0 , fiat , safety ); dataset.addValue( 5.0 , audi , speed ); dataset.addValue( 6.0 , audi , userrating ); dataset.addValue( 10.0 , audi , millage ); dataset.addValue( 4.0 , audi , safety ); dataset.addValue( 4.0 , ford , speed ); dataset.addValue( 2.0 , ford , userrating ); dataset.addValue( 3.0 , ford , millage ); dataset.addValue( 6.0 , ford , safety ); JFreeChart barChart = ChartFactory.createBarChart( "CAR USAGE STATIStICS", "Category", "Score", dataset,PlotOrientation.VERTICAL, true, true, false); int width = 640; /* Width of the image */ int height = 480; /* Height of the image */ File BarChart = new File( "BarChart.jpeg" ); ChartUtilities.saveChartAsJPEG( BarChart , barChart , width , height ); } } 让我们将上述Java代码保存在BarChart.java文件中,然后从提示的命令中编译并运行它 $javac BarChart.java $java BarChart 如果一切正常,它将编译并运行以在当前目录中创建一个名为 BarChart.jpeg 的JPEG图像文件。 JFreeChart饼图 JFreeChart折线图