开发手册 欢迎您!
软件开发者资料库

JFreeChart - 3D饼图/条形图

JFreeChart 3D Pie / Bar Chart - 从概述开始,简单易学地学习JFreeChart Concepts,然后介绍JFreeChart安装,参考API,JFreeChart架构,饼图,条形图,折线图,XY图表,3D饼图/条形图,泡泡图表,时间序列图表,JFreeChart文件和JFree图表数据库等

3D图表是以三维格式显示的图表.您可以使用这些图表来提供更好的显示和清晰信息. 3D饼图与饼图相同,具有漂亮的3D效果.通过添加一些额外的代码可以实现3D效果,这将代表在饼图中创建3D效果.

3D饼图

考虑以下示例,借助3D饼图来说明移动销售.以下是不同移动品牌及其销售(每日单位)的列表.

S.No移动品牌销售额(每天的单位数)
1Iphone 5S20
2Samsung Grand20
3MOTO G40
4诺基亚Lumia10

以下是从上面给出的信息创建3D饼图的代码.此代码可帮助您在任何基于AWT的应用程序中嵌入饼图.

import java.io.*; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PiePlot3D; import org.jfree.data.general.DefaultPieDataset; import org.jfree.chart.ChartUtilities;public class PieChart3D {   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.createPieChart3D(          "Mobile Sales" ,  // chart title                            dataset ,         // data          true ,            // include legend                            true,          false);      final PiePlot3D plot = ( PiePlot3D ) chart.getPlot( );                   plot.setStartAngle( 270 );                   plot.setForegroundAlpha( 0.60f );                   plot.setInteriorGap( 0.02 );                   int width = 640;   /* Width of the image */                   int height = 480;  /* Height of the image */                                   File pieChart3D = new File( "pie_Chart3D.jpeg" );                                 ChartUtilities.saveChartAsJPEG( pieChart3D , chart , width , height );      }}

让我们将上述Java代码保存在PieChart3D.java文件中,然后从命令编译并运行它提示为 :

  $ javac PieChart3D.java  $ java PieChart3D

如果一切正常,它将编译并运行以创建名为 PieChart3D.jpeg 的JPEG图像文件,其中包含以下3D饼图 :

JFreeChart PieChart3D

3D条形图

3D条形图相同作为条形图另外具有漂亮的3D效果.通过添加一些额外的代码可以实现3D效果,这将在条形图中创建3D效果.请考虑以下示例,该示例借助于3D条形图描绘各种汽车统计数据.以下是汽车品牌及其不同特征的列表,我们将使用条形图和减号显示;

CarSpeed用户评分Millage安全
菲亚特 1.03.05.05.0
奥迪 5.06.010.04.0
FORD 4.02.03.06.0

以下代码创建来自上面给出的信息的3D条形图.此代码可帮助您在任何基于AWT的应用程序中嵌入条形图.

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 BarChart3D {      public static void main( String[ ] args )throws Exception {      final String fait = "FAIT";                    final String audi = "AUDI";                    final String ford = "FORD";                    final String speed = "Speed";                    final String popular = "Popular";                    final String mailage = "Mailage";                    final String userrating = "User Rating";                    final String safety = "safety";              final DefaultCategoryDataset dataset = new DefaultCategoryDataset( );       dataset.addValue( 1.0 , fait , speed );                    dataset.addValue( 4.0 , fait , popular );                    dataset.addValue( 3.0 , fait , userrating );                    dataset.addValue( 5.0 , fait , mailage );                    dataset.addValue( 5.0 , fait , safety );                          dataset.addValue( 5.0 , audi , speed );                    dataset.addValue( 7.0 , audi , popular );                    dataset.addValue( 6.0 , audi , userrating );                    dataset.addValue( 10.0 , audi , mailage );                    dataset.addValue( 4.0 , audi , safety );             dataset.addValue( 4.0 , ford , speed );                    dataset.addValue( 3.0 , ford , popular );                    dataset.addValue( 2.0 , ford , userrating );                    dataset.addValue( 3.0 , ford , mailage );                    dataset.addValue( 6.0 , ford , safety );                             JFreeChart barChart = ChartFactory.createBarChart3D(         "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 barChart3D = new File( "barChart3D.jpeg" );                                  ChartUtilities.saveChartAsJPEG( barChart3D, barChart, width, height);   }}

让我们将上述Java代码保存在 BarChart3D.java 文件中,然后从命令提示编译并运行它为 :

$ javac BarChart3D.java $ java BarChart3

如果您的环境一切正常,它将编译并运行以创建一个JPEG图像文件 BarChart3D.jpeg ,其中包含以下3D条形图 :

JFreeChart 3D条形图