`
mmk12333
  • 浏览: 35299 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JfreeChart柱状图饼图

阅读更多

JfreeChart画出柱状图饼图的代码片段及详细的注释,附件为JfreeChart中文API一览表,和生成的柱状图,饼图图片

 

 

 

import java.awt.Font;

import java.io.FileOutputStream;

import java.io.IOException;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.axis.CategoryAxis;

import org.jfree.chart.axis.NumberAxis;

import org.jfree.chart.plot.CategoryPlot;

import org.jfree.chart.plot.PiePlot3D;

import org.jfree.chart.plot.PlotOrientation;

import org.jfree.chart.renderer.category.BarRenderer;

import org.jfree.chart.title.TextTitle;

import org.jfree.data.category.DefaultCategoryDataset;

import org.jfree.data.general.DefaultPieDataset;

 

public class ChartDemo {

 

    public static void main(String[] args) {

       ChartDemo chartD = new ChartDemo();

       chartD.createBarDemo( "c:\\bar.jpg" );

       chartD.createPieDemo( "c:\\pie.jpg" );

 

    }

 

    // 创建柱状图

    public void createBarDemo(String jpgname) {

       // 创建数据的集合

       DefaultCategoryDataset dataset = getBarDataset();

       /*

         * createBarChart3D 创建柱图,第一个参数是图标的标题,第二个是 X 轴标题,第三个是 Y 轴标题,第四个是数据集合,

         * PlotOrientation.HORIZONTAL , 图表方向:水平 PlotOrientation.VERTICAL ,

          * 图表方向:垂直 false, 是否显示图例 ( 对于简单的柱状图必须是 false), 生成在图片的最下方,该例中表示什么颜色代表什么地方。

         * true, 是否生成工具 true 是否生成 URL 链接

         *

         */

       JFreeChart chart = ChartFactory.createBarChart3D ( " 水果产量图 " , " 水果 " , " 产量 " ,

              dataset, PlotOrientation. VERTICAL , true , false , false );

       // 获取柱状图的 plot 的对象

       CategoryPlot plot = chart.getCategoryPlot();

       // 获得标题类,设置标题的字体颜色大小

       TextTitle textTitle = chart.getTitle();

       // 取得纵轴

       NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();

       // PLAIN 字体样式为普通, BOLD 字体样式为粗体

       textTitle.setFont( new Font( " 黑体 " , Font. BOLD , 30));

       // 取得横轴

       CategoryAxis domainAxis = plot.getDomainAxis();

       // 设置柱状图整体距离 y 轴左侧 10%

       domainAxis.setLowerMargin(0.1);

       // 设置柱状图整体距离 y 轴右侧 10%

       domainAxis.setUpperMargin(0.1);

       // 设置 X 轴与 X 轴标签之间的距离为 1 个像素    setCategoryMargin 设置距离百分比

       domainAxis.setCategoryLabelPositionOffset(1);

       // 设置横轴标尺值字体

       domainAxis.setTickLabelFont( new Font( "sans-serif" , Font. BOLD , 22));

       // 设置横轴显示标签的字体

       domainAxis.setLabelFont( new Font( " 宋体 " , Font. BOLD , 18));

       // 设置纵轴标尺值字体

       numberaxis.setTickLabelFont( new Font( "sans-serif" , Font. BOLD , 22));

       // 设置纵轴显示标签字体

       numberaxis.setLabelFont( new Font( " 黑体 " , Font. BOLD , 18));

       // char.getLegend 取得表的第一个图例,设置图例的字体

       chart.getLegend().setItemFont( new Font( " 宋体 " , Font. BOLD , 22));

        // 文件输出流,传进来一个输出地址作为参数

       FileOutputStream jpg = null ;

       try {

           jpg = new FileOutputStream(jpgname);

           /*

             * 第一个参数是输出流对象,第二个是分辨率 介于 0.1F 1.0F 之间 第三个是 chart 对象(图像作为输出流进行输出)

             * 第四个第五个是图片大小的设置。

             *

             */

           ChartUtilities.writeChartAsJPEG (jpg, 1.0f, chart, 900, 700);

 

       } catch (Exception e) {

           // TODO 自动生成 catch

           e.printStackTrace();

       } finally {

           try {

              jpg.close();

           } catch (IOException e) {

              // TODO 自动生成 catch

              e.printStackTrace();

           }

       }

    }

 

    // 获取柱状图数据

    private DefaultCategoryDataset getBarDataset() {

       DefaultCategoryDataset dataset = new DefaultCategoryDataset();

       // dataset 中加入数据,第一个参数是 y 轴坐标,第三个参数是 x 轴坐标,第二个参数是每个参量

       dataset.addValue(33, " 北京 " , " 苹果 " );

       dataset.addValue(55, " 上海 " , " 梨子 " );

       dataset.addValue(77, " 南昌 " , " 葡萄 " );

       dataset.addValue(13, " 海南 " , " 香蕉 " );

       dataset.addValue(28, " 北京 " , " 荔枝 " );

       dataset.addValue(65, " 上海 " , " 荔枝 " );

       return dataset;

    }

 

    // 创建饼图

    @SuppressWarnings ( "deprecation" )

    public void createPieDemo(String jpgname) {

       DefaultPieDataset dataset = getPieDataset();

       JFreeChart chart = ChartFactory.createPieChart3D ( " 水果产量 " , dataset, true ,

              true , true );

       // 获得标题类,设置标题的字体颜色大小

       TextTitle textTitle = chart.getTitle();

       textTitle.setFont( new Font( " 黑体 " , Font. BOLD , 50));

       // 设置饼图图例字体的大小

       chart.getLegend().setItemFont( new Font( " 宋体 " , Font. BOLD , 22));

       // 获得饼图 plot 的对象

       PiePlot3D plot = (PiePlot3D) chart.getPlot();

       // 设置饼图旁边的中文字体

       plot.setLabelFont( new Font( " 黑体 " , Font. PLAIN , 22));

       FileOutputStream jpg = null ;

 

       try {

           jpg = new FileOutputStream(jpgname);

           ChartUtilities.writeChartAsJPEG (jpg, 1.0f, chart, 900, 700, null );

 

       } catch (Exception e) {

 

           e.printStackTrace();

       } finally {

           try {

              jpg.close();

           } catch (IOException e) {

 

              e.printStackTrace();

           }

       }

    }

     /**

      * 添加饼状图数据, setValue 只有两个参数第一个是变量的名字,第二个是变量的值

      * */

    private DefaultPieDataset getPieDataset() {

       DefaultPieDataset dataset = new DefaultPieDataset();

       dataset.setValue( " 苹果 " , 100);

       dataset.setValue( " 梨子 " , 200);

       dataset.setValue( " 葡萄 " , 300);

       dataset.setValue( " 荔枝 " , 400);

       dataset.setValue( " 香蕉 " , 500);

       dataset.setValue( " 枣子 " , 600);

       return dataset;

    }

 

}

 

  • 大小: 28 KB
  • 大小: 24 KB
0
0
分享到:
评论

相关推荐

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...

    jfreechart曲线图饼图柱状图 免费图标 图表

    JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图形绘制功能,包括曲线图、饼图和柱状图等。这个库是免费的,适用于各种项目,无论是商业应用还是个人学习,都能从中受益。在本篇文章中,我们将深入探讨...

    jfreechart 图形折线,饼图,柱状图等

    JFreeChart 是一个广泛使用的开源 Java 图形库,它允许开发人员轻松地创建各种图表,包括折线图、饼图和柱状图。这个库为 Java 应用程序提供了丰富的图表功能,适用于数据可视化的需求,无论是简单的报告还是复杂的...

    利用JFreeChart 实现柱状图,饼图,时序图,折线图等

    在Java编程环境中,JFreeChart库是一个非常强大的工具,它允许开发者轻松地创建各种图表,如柱状图、饼图、时序图和折线图等。这些图表在数据分析、报表展示以及各种可视化应用中非常常见。下面我们将详细介绍如何...

    自定义JFreeChart柱状图的详细说明

    综上所述,自定义JFreeChart柱状图涉及了数据准备、渲染器配置、外观调整、标签和提示信息等多个方面。通过深入理解这些知识点,开发者可以创建出满足各种需求的个性化柱状图。提供的文件如"JFreeChart中柱状图的...

    jfreechart 柱状图、曲线图、饼图经

    JFreeChart是一款强大的Java图形库,它为开发者提供了丰富的图表类型,包括柱状图、曲线图和饼图等,使得在Java应用中展示数据变得更加直观和美观。在本篇文章中,我们将深入探讨如何利用JFreeChart来创建这些图表,...

    java制作jfreechart柱状图 饼状图 折线图

    Java中的JFreeChart库是一个强大的工具,用于生成各种类型的图表,包括柱状图、饼状图和折线图。在本教程中,我们将深入探讨如何使用JFreeChart创建这些图表,以及如何用随机生成的数据作为数据源。 首先,...

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

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

    java绘制图表(柱状图、饼图、折线图)包 jfreechart

    这个库支持多种图表类型,包括柱状图、饼图和折线图,适用于数据分析、报告生成以及可视化展示等多种场景。在Java开发中,JFreeChart提供了一个简单易用的API,使得开发者可以轻松地将复杂的统计或业务数据转化为...

    jfreechart-1.0.8 饼图等图型

    jfreechart-1.0.8a-swt.jar jfreechart-1.0.8a.jar jfreechart-1.0.8a-experimental.jar jcommon-1.0.12.jar gnujaxp.jar 及网上找到的简单的饼图和柱状图的用例(jfreechart.exe帮助文件)

    JFreeChart 饼图、柱状图 例 (含数据库)

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼图、柱状图等,并且能够与数据库进行交互,为数据分析和可视化提供便利。在这个MyEclipse项目中,你将找到如何利用JFreeChart来实现这些...

    jfreechart_生成折线图,饼图,柱状图,堆栈柱状图

    jfreechart 生成折线图、饼图、柱状图、堆栈柱状图 jfreechart 是一个功能强大且流行的 Java 图表库,用于生成各种类型的图表,包括折线图、饼图、柱状图、堆栈柱状图等。在本文中,我们将使用 jfreechart 1.0.8a ...

    JFreeChart柱状图资料

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,如柱状图、饼图、线图、散点图等,适用于各种数据分析和可视化需求。本资料主要聚焦于JFreeChart在创建柱状图方面的应用。 1. **JFreeChart...

    JFreeChart让单组柱子显示不同的颜色的办法

    在Java编程领域,JFreeChart是一个非常流行的图表库,它提供了丰富的图表类型,如柱状图、饼图、线图等,用于数据可视化。当我们需要创建一个柱状图,并且希望在同一组数据中,每根柱子显示不同的颜色时,JFreeChart...

    jfreechart柱状图

    JFreeChart 是一个流行的开源 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,广泛应用于数据分析、报告生成以及可视化应用中。这个压缩包提供的源代码示例,展示了如何使用 JFreeChart ...

    JFreeChart柱状图的类的封装

    在这个主题中,我们将深入探讨"JFreeChart柱状图的类的封装",了解如何利用这个库来创建柱状图以及相关的类和工具。 首先,JFreeChart的核心类之一是`CategoryPlot`,它是柱状图的基础。`CategoryPlot`负责管理类别...

    Struts2+JFreeChart 柱状图Demo

    JFreeChart则是一个用Java编写的图表库,可以生成各种类型的图表,如柱状图、折线图、饼图等。在这个Demo中,JFreeChart被用来根据从数据库获取的数据生成柱状图。开发者首先需要通过JDBC连接到MySQL或Oracle数据库...

Global site tag (gtag.js) - Google Analytics