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

JFreeChart 柱状图demo

    博客分类:
  • java
阅读更多

package com.voole.jfreeChart;

 

 

import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;

import javax.swing.*;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

 

 

public class ZhuZhuangTu extends JFrame {
 public static void main(String[] args) throws IOException{

        CategoryDataset dataset = getDataSet();

        JFreeChart chart = ChartFactory.createBarChart3D(

                                                "招生信息总览", // 图表标题

                                                "应报与实报对照", // 目录轴的显示标签

                                                "人数", // 数值轴的显示标签

                                                dataset, // 数据集

                                                PlotOrientation.VERTICAL, // 图表方向:水平、垂直

                                                true,  // 是否显示图例(对于简单的柱状图必须是false)

                                                true,  // 是否生成工具

                                                true  // 是否生成URL链接

                                                );

        CategoryPlot plot = chart.getCategoryPlot();// 获得图表区域对象

        // 设置图表的纵轴和横轴org.jfree.chart.axis.CategoryAxis

        org.jfree.chart.axis.CategoryAxis domainAxis = plot.getDomainAxis();

        domainAxis.setLowerMargin(0.1);// 设置距离图片左端距离此时为10%

        domainAxis.setUpperMargin(0.1);// 设置距离图片右端距离此时为百分之10

        domainAxis.setCategoryLabelPositionOffset(10);// 图表横轴与标签的距离(10像素)

        domainAxis.setCategoryMargin(0.2);// 横轴标签之间的距离20%

        // domainAxis.setMaximumCategoryLabelLines(1);

        // domainAxis.setMaximumCategoryLabelWidthRatio(0);

 

        // 设定柱子的属性

        org.jfree.chart.axis.ValueAxis rangeAxis = plot.getRangeAxis();

        rangeAxis.setUpperMargin(0.1);// 设置最高的一个柱与图片顶端的距离(最高柱的10%)

 

        // 设置图表的颜色

        org.jfree.chart.renderer.category.BarRenderer3D renderer;

        renderer = new org.jfree.chart.renderer.category.BarRenderer3D();

        renderer.setBaseOutlinePaint(Color.red);

        renderer.setSeriesPaint(0, new Color(0, 255, 255));// 计划柱子的颜色为青色

        renderer.setSeriesOutlinePaint(0,Color.BLACK);// 边框为黑色

        renderer.setSeriesPaint(1, new Color(0, 255, 0));// 实报柱子的颜色为绿色

        renderer.setSeriesOutlinePaint(1,Color.red);// 边框为红色

        renderer.setItemMargin(0.1);// 组内柱子间隔为组宽的10%

        // 显示每个柱的数值,并修改该数值的字体属性

        renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());

        renderer.setItemLabelFont(new Font("黑体",Font.BOLD,12));// 12号黑体加粗

        renderer.setItemLabelPaint(Color.black);// 字体为黑色

        renderer.setItemLabelsVisible(true);

        plot.setRenderer(renderer);// 使用我们设计的效果

 

        // 设置纵横坐标的显示位置

        plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);// 学校显示在下端(柱子竖直)或左侧(柱子水平)

        plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); // 人数显示在下端(柱子水平)或左侧(柱子竖直)

 

        try {

          File file = new File("c:/student.png");

          ChartUtilities.saveChartAsPNG(file,chart,400,300);// 把报表保存为文件

        }catch (Exception e) {

                  String s = e.getLocalizedMessage();

                  s = e.getMessage();

                  s = e.toString();

        }

    // 将生成的报表放到预览窗口中

     ChartFrame  preview = new ChartFrame("招生信息",chart);

     preview.addWindowListener(new WindowAdapter() {

       public void windowClosing(final WindowEvent event) {

        // preview.dispose();

       }
      
     });

     preview.pack();

     // 调整预览窗口的大小和位置,适合屏幕,并且居中

     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

     preview.setSize(screenSize.width,screenSize.height-50);// 适合屏幕,50表示把工具栏要考虑在内

     Dimension frameSize = preview.getSize();

     if (frameSize.height > screenSize.height) {

       frameSize.height = screenSize.height;

     }

     if (frameSize.width > screenSize.width) {

       frameSize.width = screenSize.width;

     }

     preview.setLocation( (screenSize.width - frameSize.width) / 2,

                (screenSize.height - frameSize.height-50) / 2);

 

     // 显示报表预览窗口

     preview.setVisible(true);

}

/**
 *
 * 获取一个演示用的组合数据集对象
 *
 * @return
 *
 */

private static CategoryDataset getDataSet() {

        DefaultCategoryDataset dataset = new DefaultCategoryDataset();

        dataset.addValue(200, "计划", "清华大学");

        dataset.addValue(400, "实报", "清华大学");

        dataset.addValue(100, "计划", "天津大学");

        dataset.addValue(205, "实报", "天津大学");

        dataset.addValue(200, "计划", "郑州大学");

        dataset.addValue(285, "实报", "郑州大学");

        return dataset;

}

 
}

分享到:
评论

相关推荐

    Struts2+JFreeChart 柱状图Demo

    Struts2+JFreeChart 柱状图Demo是一个典型的Java Web应用程序,它结合了Struts2框架、JFreeChart库以及可能的数据存储系统(如MySQL或Oracle),用于动态生成柱状图表。这个Demo旨在展示如何在实际项目中集成这些...

    jfreechart折线图demo

    JFreeChart 是一个用 Java 编写的开源图表库,它提供了丰富的图表类型,包括折线图、柱状图、饼图等,适用于各种数据可视化需求。在这个“jfreechart折线图demo”中,我们将深入探讨如何使用 JFreeChart 创建和展示...

    jfreechart demo

    JFreeChart 是一个强大的 Java 图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、甘特图等,适用于各种数据可视化需求。这篇内容将深入探讨 JFreeChart 的基本使用方法和在 `jfreechart demo` 中的...

    jfreechart1.0.3-demo-src

    JFreeChart 是一个广泛使用的 Java 图形库,它提供了丰富的图表类型,包括饼图、柱状图、线图、散点图等,使得开发者能够在 Java 应用程序中方便地创建高质量的图表。"jfreechart1.0.3-demo-src" 是 JFreeChart ...

    jfreechart-1.0.13demo

    1. 图表类型:JFreeChart支持多种图表类型,如饼图(PieChart)、柱状图(BarChart)、线图(LineChart)、面积图(AreaChart)和散点图(ScatterPlot)等,每种图表都有其特定的应用场景。 2. 组件结构:...

    jfreeChart报表小demo

    **JFreeChart报表小demo** 是一个基于Java的项目,主要展示了如何使用JFreeChart库创建各种图表,如饼图、柱状图和线图,并将这些图表嵌入到PDF文档中,使用了iText库进行PDF处理。这个项目非常适合初学者了解数据...

    jfreechart-1.0.17demo源码

    JFreeChart 是一个广泛使用的开源Java库,它提供了一系列丰富的图表组件,如饼图、柱状图、线图、散点图等,适用于各种数据可视化需求。在本篇文章中,我们将深入探讨基于JFreeChart 1.0.17版本的Demo源码,以帮助...

    JFreeChart所有图形实例(Demo和源码).rar

    JFreeChart是一款强大的Java库,用于创建各种类型的2D图表,包括饼图、柱状图、线图、散点图、甘特图等。这个压缩包"JFreeChart所有图形实例(Demo和源码).rar"包含了JFreeChart库的各种图形实例,提供了丰富的示例...

    JFreeChart参考Demo和技术文档以及相关问题的处理和乱码问题

    JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图表类型,如柱状图、饼图、线形图、散点图等,适用于各种数据可视化需求。本篇将深入探讨JFreeChart的参考Demo、技术文档,以及如何解决在使用过程中可能...

    JFreeChart网页版Demo

    JFreeChart是Java平台上的开源项目,它提供了一组丰富的API,用于创建多种类型的图表,如折线图、柱状图、饼图、散点图、甘特图等。它支持多种输出格式,如Swing组件、SVG、PNG、JPEG和PDF,使得图表可以方便地嵌入...

    JFreeChart生成报表Demo案例

    JFreeChart是一款强大的Java库,专门用于生成高质量的图表,如饼图、柱状图、折线图等,广泛应用于数据分析、报告生成以及各种可视化应用中。本示例是关于如何使用JFreeChart在Java环境中创建3D效果的报表的实践教程...

    jfreechartDEMO(官网demo与源代码)

    JFreeChart是一款强大的Java图表库,它提供了丰富的图表类型,如柱状图、饼图、线图、散点图等,广泛应用于数据分析、报告生成以及GUI应用中。本文将通过分析"jfreechart demo 源代码",深入理解JFreeChart的使用...

    Jfreechart--demo

    JFreeChart是一款广泛使用的开源Java库,它能够帮助开发者创建各种高质量的图表,包括柱状图、饼图、线形图、散点图、面积图、甘特图以及更复杂的组合图表等。在Java应用程序、Web应用和报告系统中,JFreeChart经常...

    JfreeChartDemo 仪表盘

    JFreeChart 是一个强大的 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图以及仪表盘等。在给定的“JfreeChartDemo 仪表盘”中,我们将深入探讨如何使用 JFreeChart 库创建和展示仪表盘图表。...

    jfreechart_demo.zip

    JFreeChart是一个强大的Java图表库,它允许程序员创建多种类型的高质量图表,如柱状图、饼图、线图、散点图以及甘特图等。这个"jfreechart_demo.zip"压缩包包含了作者对JFreeChart的学习和应用的示例代码,是深入...

    jfreechart 1.0.6 demo 源码

    JFreeChart是一款流行的开源Java库,用于创建各种类型的图表,如折线图、柱状图、饼图、散点图等。在Java开发中,JFreeChart被广泛用于数据分析和可视化,尤其在报表系统、统计分析软件以及仪表盘界面设计等领域。...

    JFreeChart_GUI_Demo

    `JFreeChart` 是一个开源的Java库,用于创建高质量的图表,包括柱状图、折线图、饼图等,广泛应用于数据分析和可视化项目。`JFreeChart_GUI_Demo` 提供了一系列示例代码,帮助开发者了解如何在Java图形用户界面(GUI...

    jfreechart-1.0.19-demo源码

    JFreeChart是一款开源的、功能强大的统计图生成工具,可以直接生成PNG、JPG等各式的文件,它实现了动态数据图形的完美结合,它是纯java的一个开发包,不仅能够实现饼图,柱状图,堆栈拄状图,线图等常规图形,而且能...

    jfreechart-1.0.14-demo.jar 对应的源码

    JFreeChart 是一个广泛使用的 Java 图表库,它为开发者提供了创建各种高质量图表的能力,包括饼图、柱状图、线图、散点图、甘特图等。在1.0.14版本中,其提供的`jfreechart-1.0.14-demo.jar`是一个演示程序,展示了...

    jfreechart-1.0.12 demo 源码

    JFreeChart 是一个用 Java 编写的开源图表库,它提供了丰富的图表类型,包括饼图、柱状图、线图、散点图、甘特图等,广泛应用于数据分析、报表生成以及可视化展示。在 JFreeChart 的 1.0.12 版本中,包含了一个演示...

Global site tag (gtag.js) - Google Analytics