`

pieChart 和 pieChart3D

阅读更多

JFreeChart的使用非常简单,我们只需要提供满足JFreeChart需要的数据,即可使用ChartFactory创建一个JFreeChart图表,该图表既可以输出成图片文件,也可以导出成各种格式的文档。

现在以生成一张饼图为例,示范如何使用JFreeChart生成统计图。

 

准备

确保应用的JFreeChart配置正确:必需含有jfreechart-1.0.13.jar和jcommon-1.0.16.jar两个JAR包。


确保必需包含的相关JFreeChart包

 

PieCharDemo代码

  1. package jfreechat;  
  2.  
  3. import java.awt.Font;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6.  
  7. import org.jfree.chart.ChartFactory;  
  8. import org.jfree.chart.ChartUtilities;  
  9. import org.jfree.chart.JFreeChart;  
  10. import org.jfree.chart.plot.PiePlot;  
  11. import org.jfree.chart.title.LegendTitle;  
  12. import org.jfree.chart.title.TextTitle;  
  13. import org.jfree.data.general.DefaultPieDataset;  
  14.  
  15. public class PieCharDemo {  
  16.     public static void main(String[] args) throws IOException {  
  17.         DefaultPieDataset data = getDataset();  
  18.           
  19.         JFreeChart chart = ChartFactory.createPieChart(  
  20.             "图书销量统计图",  //图表标题  
  21.             getDataset(),       //数据  
  22.             true,               //是否显示图例  
  23.             false,              //是否显示工具提示  
  24.             false               //是否生成URL  
  25.         );  
  26.           
  27.         //重新设置图表标题,改变字体  
  28.         chart.setTitle(new TextTitle("图书销量统计图",new Font("黑体", Font.ITALIC, 22)));  
  29.         //取得统计图表的第一个图例  
  30.         LegendTitle legend = chart.getLegend(0);  
  31.         //修改图例的字体  
  32.         legend.setItemFont(new Font("宋体", Font.BOLD, 14));  
  33.         //获得饼图的Plot对象  
  34.         PiePlot plot = (PiePlot)chart.getPlot();  
  35.         //设置饼图各部分的标签字体  
  36.         plot.setLabelFont(new Font("隶属", Font.BOLD, 18));  
  37.         //设置透明度(0-1.0之间)  
  38.         plot.setBackgroundAlpha(0.9f);  
  39.           
  40.         FileOutputStream fos = new FileOutputStream("d:\\book.jpg");  
  41.         ChartUtilities.writeChartAsJPEG(  
  42.             fos,        //输出到哪个输出流  
  43.             1,          //JPEG图片的质量,0-1之间  
  44.             chart,      //统计图表对象  
  45.             800,        //图片宽度  
  46.             600,        //图片高度  
  47.             null        //ChartRebderingInfo信息  
  48.         );  
  49.           
  50.         fos.close();  
  51.     }  
  52.       
  53.     private static DefaultPieDataset getDataset(){  
  54.         DefaultPieDataset dataset = new DefaultPieDataset();  
  55.         dataset.setValue("Java疯狂讲义"47000);  
  56.         dataset.setValue("Struts2"38000);  
  57.         dataset.setValue("Hibernate"31000);  
  58.         dataset .setValue("Spring"29000);  
  59.         dataset.setValue("AJAX"25000);  
  60.         return dataset;  
  61.     }  

上面代码先提供一个方法,该方法返回Dataset()对象,这个Dataset()就是创建统计图表的底层数据,然后调用ChartFactory的createPieChart方法来生成一个JFreeChart对象,这个对象就是统计图表,该图表可以直接输出到图片文件中,也可导出成各种格式的文件。

上面的实例是导出了一张JPG格式的图片文件,编译、运行上述代码,在D:\下将生成一张book.jpg的图片,生成的饼图如下:

从上图中可以看出,JFreeChart统计图可以分成3个部分:

  • 图表标题部分
  • 实际统计图部分
  • 图表图例部分

结合上面代码部分可以看出,修改统计图表的标题部分(包括修改图表标题内容、字体大小等)都是通过JFreeChart对象的setTitle方法实现的;修改统计图表的图例则是通过LegendTitle对象来完成。一个统计图表可以包含多个图例,当调用JFreeChart对象的getLegend(int index)方法时,就可以取得该图表的指定索引的图例对象,一旦取得了指定图例,就可以修改图例的文本内容、字体大小等。

在上面程序中,我们调用了ChartFactory的createPieChart方法,该方法用于创建一个平面的饼图;如果将该方法改为createPieChart3D,则可以创建一个3D的饼图。

 

PieChart3D代码

  1. package jfreechat;  
  2.  
  3. import java.awt.Font;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6.  
  7. import org.jfree.chart.ChartFactory;  
  8. import org.jfree.chart.ChartUtilities;  
  9. import org.jfree.chart.JFreeChart;  
  10. import org.jfree.chart.plot.PiePlot;  
  11. import org.jfree.chart.title.LegendTitle;  
  12. import org.jfree.chart.title.TextTitle;  
  13. import org.jfree.data.general.DefaultPieDataset;  
  14.  
  15. public class PieChart3D {  
  16.     public static void main(String[] args) throws IOException {  
  17.         DefaultPieDataset data = getDataset();  
  18.           
  19.         JFreeChart chart = ChartFactory.createPieChart3D(  
  20.             "图书销量统计图",  //图表标题  
  21.             getDataset(),       //数据  
  22.             true,               //是否显示图例  
  23.             false,              //是否显示工具提示  
  24.             false               //是否生成URL  
  25.         );  
  26.           
  27.         //重新设置图表标题,改变字体  
  28.         chart.setTitle(new TextTitle("图书销量统计图-3D",new Font("黑体", Font.ITALIC, 22)));  
  29.         //取得统计图表的第一个图例  
  30.         LegendTitle legend = chart.getLegend(0);  
  31.         //修改图例的字体  
  32.         legend.setItemFont(new Font("宋体", Font.BOLD, 14));  
  33.         //获得饼图的Plot对象  
  34.         PiePlot plot = (PiePlot)chart.getPlot();  
  35.         //设置饼图各部分的标签字体  
  36.         plot.setLabelFont(new Font("隶属", Font.BOLD, 18));  
  37.         //设置透明度(0-1.0之间)  
  38.         plot.setBackgroundAlpha(0.9f);  
  39.           
  40.         FileOutputStream fos = new FileOutputStream("d:\\book3D.jpg");  
  41.         ChartUtilities.writeChartAsJPEG(  
  42.             fos,        //输出到哪个输出流  
  43.             1,          //JPEG图片的质量,0-1之间  
  44.             chart,      //统计图表对象  
  45.             800,        //图片宽度  
  46.             600,        //图片高度  
  47.             null        //ChartRebderingInfo信息  
  48.         );  
  49.         fos.close();  
  50.     }  
  51.     private static DefaultPieDataset getDataset(){  
  52.         DefaultPieDataset dataset = new DefaultPieDataset();  
  53.         dataset.setValue("Java疯狂讲义"47000);  
  54.         dataset.setValue("Struts2"38000);  
  55.         dataset.setValue("Hibernate"31000);  
  56.         dataset .setValue("Spring"29000);  
  57.         dataset.setValue("AJAX"25000);  
  58.         return dataset;  
  59.     }  
这是在http://www.sunchis.com/html/java/javareport/2010/0316/76.html上看见的我就直接粘贴过来了 由于javaeye做的很傻一些粘过来的图片就显示不出来了      希望对大家有一些用处   
分享到:
评论

相关推荐

    pieChart 3d示例 flax

    `pieChart 3d`是一种用于展示数据比例和分布的图形,它通过立体的视角增强了数据的视觉表达力。`flax`是一个强大的数据可视化库,它为开发者提供了创建各种复杂图表的能力,包括3D饼图。在本示例中,`pieChart 3d`被...

    C# 3D 饼图 PieChart 三维

    在C#编程环境中,3D饼图(PieChart)是一种常用的数据可视化工具,它能够以立体的方式展示数据比例关系,使复杂的数据变得直观易懂。本文将深入探讨C#中创建3D饼图的关键知识点,包括3D效果的实现、数据绑定、自定义...

    matlab开发-标签库piechart3d

    综上所述,"matlab开发-标签库piechart3d"是一个专注于MATLAB三维饼图自定义功能的项目,它提供了一种增强数据可视化的工具,使得数据的呈现更为生动和易于理解。通过深入学习和实践,开发者可以更好地掌握MATLAB的...

    3DMAX饼状图生成插件PieChart下载

    3DMAX饼状图生成插件PieChart,一款用于制作3D饼状图的工具。可以设置任意数量的切片,以及随机或指定切片颜色。 PieChart插件无需安装,使用时直接拖动插件脚本文件到3dmax视口中打开即可。

    grafana-piechart-panel-v1.4.0-0-gb707cd5.zip

    总之,“grafana-piechart-panel-v1.4.0-0-gb707cd5.zip”提供了一个增强Grafana可视化功能的重要工具,让饼状图成为监控分析中的有力助手,帮助用户更好地理解和解读数据。在日常运维和数据分析工作中,熟练掌握...

    很炫的PIECHART源码

    【描述】"这个程序是关于一个很炫的PIECHART"暗示了该程序可能包含了一些特殊的功能或设计,如动态效果、3D视图、自定义颜色方案、平滑过渡等,使得饼图不仅具有信息传递的功能,还增加了用户体验的趣味性和互动性。...

    VB6画PieChart

    1. **使用内置控件**:VB6提供了MS Chart Control(Microsoft 图表控件),这是一个可以嵌入到应用程序中的组件,可以方便地创建2D和3D饼状图。要使用它,你需要在工具箱中添加图表控件,然后设置其属性如数据源、...

    PieChart a good pie chart control

    2. **WPF Chart 控件**:对于WPF应用程序,同样有内置的Chart控件,使用方法与Windows Forms类似,但提供了更多样式和布局选项,如3D视图、环形图等。 3. **第三方库**:LiveCharts库提供了强大的动态饼状图,支持...

    echarts 3D饼图组件

    import PieChart3D from "@/components/PieChart3D" <PieChart3D values={[ { name: "整租", value: 3, color: [5, 140, 198, 1] }, { name: "散租", value: 2, color: [255, 137, 0, 1] } ]} />

    IBM 3d图 很炫很酷

    IBM作为全球知名的科技公司,提供了丰富的图表库,其中包括3D图形,如Flex Radar Chart和3D PieChart,这些都是数据可视化领域的优秀示例。 首先,让我们详细了解一下3D雷达图(Flex Radar Chart)。雷达图通常用于...

    piechart.rar

    8. 数据可视化伦理:确保饼图不误导读者,如避免3D饼图以减少视觉误导,正确表示数据比例等。 9. 自定义样式:根据需求自定义饼图的样式,使其符合品牌风格或报告的主题。 综上所述,"piechart.rar"文件可能涵盖了...

    android利用j4lChartAndroid.jar绘制3D饼图

    在Java代码中,你可以创建一个`PieChart3D`对象,并提供数据集和标签来初始化它。数据集是一个整数数组,表示每个饼图部分的值,而标签则是一个字符串数组,对应于每个值的描述。以下是一个简单的示例: ```java ...

    jfreechart 曲线图 3d饼图 3d柱状图

    **JFreeChart库详解:创建3D曲线图、3D饼图和3D柱状图** JFreeChart是一个强大的Java图形库,它提供了多种图表类型,包括曲线图、饼图和柱状图,且支持2D和3D效果。本篇文章将深入探讨如何使用JFreeChart来创建这些...

    GDI+绘制3D饼状图

    - `PieChart2.cpp`:主要的绘图逻辑,可能包含了绘制3D饼图的函数和算法。 - `stdafx.cpp/h`:预编译头文件,通常包含常用库的引用和定义。 - `PieChart2.vcxproj.filters`:Visual Studio项目过滤器文件,帮助...

    PieChart.zip_3D图形编程_Visual_Basic_

    在“PieChart.zip”压缩包中,除了可能的源代码文件,`@PSC_ReadMe_66031_1.txt`很可能是项目说明文档,包含了关于代码的使用、配置和版权信息。而“Texas hold em VB”文件名暗示了一个使用VB编写的德州扑克游戏,...

    flex做的非常漂亮的3D饼图与3D柱状图,非常实用

    在Flex中实现3D饼图,通常会用到MX图表组件库中的PieSeries或PieChart类。这些类提供了设置3D效果、颜色、标签、数据源等属性的方法。通过调整这些参数,可以创建出具有立体感和动态效果的3D饼图,使得数据更直观...

    flex 3D饼图

    flex的一个3D饼图,点击扇区可变大,pieChart信息显示为内显示。这个一个pieChart组件

    JFreeChart生成3D饼状图及柱状图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括折线图、柱状图、饼状图、散点图等,并且支持自定义样式和颜色,使得数据可视化变得更加直观和生动。在这个特定的场景中,我们将关注...

    3D Pie Chart

    NULL 博文链接:https://yan3999.iteye.com/blog/1717789

    3D柱状图,饼状图,折线图

    这些库提供了`PieSeries`或`PieChart`类,允许开发者指定每个扇区的值和标签。你可以通过调整扇区的大小、颜色和角度来增强视觉效果。源码可能会演示如何将数据源映射到饼图的各个部分,并添加动画效果以提升用户...

Global site tag (gtag.js) - Google Analytics