`
quzhan87com
  • 浏览: 55328 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

jfreeChar 柱状图

阅读更多
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

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.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;

public class CeateBarChartNew {
	private static JFreeChart chart;
	private static CategoryDataset dataset;
	/**
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//步骤1:创建XYDataset对象(准备数据)      
		createDataset();
    	//步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置      
    	createChart();      
    	//步骤3:将JFreeChart对象输出到文件,Servlet输出流等      
    	//saveAsFile(freeChart, "F:\\jfreechart\\lineXY.png", 600, 400);      
      
        //显示  
        ChartFrame frame = new ChartFrame("BarChart Tesing!", chart);
        frame.pack();
        frame.setVisible(true);
	}
	/**
	 * Create DataSet
	 */
	private static void createDataset() {
		double[][] data = new double[][] {{24, 32, 48, 54, 65},{7, 9, 14, 21, 31}};
		String[] rowKeys = {"合格","不合格"};
		String[] columnKeys = {"类别一","类别二","类别三","类别四","类别五"};
		dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
	}
	
	/**
	 * create chart
	 * @return
	 */
	@SuppressWarnings("deprecation")
	private static void createChart() {		
		chart = ChartFactory.createBarChart3D("柱状统计图",
                "X轴",
                "Y轴",
                dataset,
                PlotOrientation.VERTICAL//PlotOrientation.VERTICAL 让平行柱垂直显示,而 PlotOrientation.HORIZONTAL 则让平行柱水平显示。                 
                true,
                false,
                false);
		chart.setBackgroundPaint(Color.WHITE);
		setChartFont();
		CategoryPlot plot = chart.getCategoryPlot();
		
		ValueAxis rangeAxis = plot.getRangeAxis();
		//设置最高的一个 Item 与图片顶端的距离
		rangeAxis.setUpperMargin(0.15);
		//设置最低的一个 Item 与图片底端的距离
		rangeAxis.setLowerMargin(0.15);
		plot.setRangeAxis(rangeAxis);
		
		BarRenderer3D renderer = new BarRenderer3D();
		//设置平行柱之间距离
		renderer.setItemMargin(0.1);
		//显示每个柱的数值,并修改该数值的字体属性
		renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
		renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
		renderer.setItemLabelsVisible(true);
		plot.setRenderer(renderer);
	}
	
	/**
	 * Save chart to File    
	 * @param chart
	 * @param outputPath
	 * @param weight
	 * @param height
	 */
    public static void saveAsFile(JFreeChart chart, String outputPath,      
    								int weight, int height) {      
    	
    	FileOutputStream out = null;      
    	try {      
    		File outFile = new File(outputPath);      
    		if (!outFile.getParentFile().exists()) {      
    			outFile.getParentFile().mkdirs();      
    		}      
    		out = new FileOutputStream(outputPath);      
    		//保存为PNG      
    		ChartUtilities.writeChartAsPNG(out, chart, weight, height);      
    		// 保存为JPEG      
    		// ChartUtilities.writeChartAsJPEG(out, chart, weight, height);      
    		out.flush();      
    	} catch (FileNotFoundException e) {      
    		e.printStackTrace();      
    	} catch (IOException e) {      
    		e.printStackTrace();      
    	} finally {      
    		if (out != null) {      
    			try {      
    				out.close();      
    			} catch (IOException e) {      
    			// do nothing      
    			}      
    		}      
    	}      
    }  
    
    /**
	 * 图标乱码解决
	 */
	private static void setChartFont() {	
		Font title = new Font("楷体", Font.PLAIN, 15);
		Font f = new Font("楷体", Font.PLAIN, 12);
		//title(标题),
		TextTitle textTitle = chart.getTitle();   
		textTitle.setFont(title); 
			CategoryPlot plot = chart.getCategoryPlot();   
			CategoryAxis domainAxis = plot.getDomainAxis();     
			//设置X轴坐标上的文字     
			domainAxis.setTickLabelFont(f); 
			//设置X轴的标题文字     
			domainAxis.setLabelFont(f); 
			
			ValueAxis numberaxis = plot.getRangeAxis(); 
			//设置Y轴坐标上的文字     
			numberaxis.setTickLabelFont(f);	
			//设置Y轴的标题文字     
			numberaxis.setLabelFont(f);  
		chart.getLegend().setItemFont(f);
	}
}

jar包是jfreeCahr-1.0.13.jar


  • 大小: 42.5 KB
分享到:
评论

相关推荐

    JFreeChar柱状图实例

    **JFreeChart 柱状图实例详解** 在Java编程中,JFreeChart是一个强大的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图等,使得开发者能够轻松地在应用程序中创建高质量的可视化数据。本实例...

    JFreeChar制作饼图和柱状图

    JFreeChart是一款强大的Java图形库,它允许开发者创建各种类型的统计图表,如饼图、柱状图、线图、散点图等。在Java应用程序中,JFreeChart为数据可视化提供了丰富的功能,使得数据的展示更为直观易懂。在本教程中,...

    jfreeChar 折线图+柱形图(混合图) +最新Jar包及例子

    JFreeChart 是一个开源的Java库,用于生成高质量的、多样的图表,包括折线图、柱形图、饼图、散点图等。在这个特定的案例中,我们关注的是如何利用JFreeChart来创建折线图和柱形图的混合图表,这种图表在数据可视化...

    jfreechar 实现生成柱状图,饼图,曲线,

    JFreeChart 是一个开源的Java库,用于生成各种类型的图表,包括柱状图、饼图和曲线图等。它提供了一种灵活的方式来创建高质量的2D图表,可以在各种Java应用程序中使用,例如桌面应用、Web应用或者服务器端应用。下面...

    JFreeChar 动态横向柱状图

    JFreeChar 动态横向柱状图,带纵向滚动条,可根据数据自动计算滚动条长度,可自定义系统柱子颜色,定时刷新

    JFreeChar 柱图实现

    在数据分析与展示领域,柱状图(Bar Chart)是一种非常常见的数据可视化工具,它能够直观地比较不同类别的数值大小,尤其适用于显示离散数据集。JFreeChart作为Java平台上的一个开源图表库,提供了丰富的API来创建...

    JFreeChar图表生成柱状图和饼状图源码

    在"JFreeChar图表生成柱状图和饼状图源码"的压缩包中,我们很可能找到了创建这两种图表的示例源代码。 柱状图是一种常用的数据可视化工具,它将数据的每个类别表示为一个垂直或水平的矩形条,长度表示数值大小。...

    jfreechar各种图

    JFreeChart是一款强大的Java库,用于创建各种类型的图表,如折线图、柱状图、饼图、散点图、甘特图等。这个库在IT行业中被广泛使用,特别是在需要进行数据可视化的应用程序中。它允许开发人员通过简单的API调用来...

    jfreechar统计图操作技巧

    JFreeChart是一款强大的Java图形库,它为开发者提供了丰富的图表类型,包括柱状图、饼图、线形图等,使得在项目开发中能够轻松地将数据库中的数据以直观、生动的方式展示出来。本文将深入探讨JFreeChart的使用技巧,...

    JfreeChar学习资料 JfreeChar学习资料

    JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图、散点图、甘特图等,使得开发者能够方便地在应用程序中生成高质量的可视化数据。本学习资料将深入探讨JFreeChart的...

    java实现柱状图

    Java 实现柱状图 Java 实现柱状图是指使用 Java 语言创建柱状图、饼状图、曲线图等图形的一种技术。通过使用 JFreeChart 库,可以轻松地创建各种类型的图形。下面将对 Java 实现柱状图的相关知识点进行详细介绍。 ...

    jfreechar 雷达图 带刻度

    JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图表类型,包括柱状图、饼图、线图、散点图以及我们关注的雷达图。雷达图,也称为蜘蛛图或星形图,是一种多变量数据可视化工具,常用于比较多个类别的数据...

    jfreechar 整合struts2.1.8版本生成线图,饼图,柱形图

    jfreechar 整合struts2.1.8版本生成线图,饼图,柱形图 直接导入eclipse 或myeclipse 即可运行,里面含有lib ,及运行详细说 如:<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts ...

    JFreeChar实现曲线图:lib+Demo

    JFreeChart是一款强大的开源Java图表库,它提供了丰富的图表类型,包括柱状图、饼图、折线图、曲线图、散点图等,使得开发者能够轻松地在Java应用中插入美观且功能齐全的图表。在本篇内容中,我们将深入探讨如何利用...

    jfreechar最新jar包

    bar charts (regular and stacked, with an optional 3D effect):柱状图 line and area charts:曲线图 scatter plots and bubble charts time series, high/low/open/close charts and candle stick charts:...

    jfreechar画图源代码

    JFreeChart是一款强大的Java图形库,它允许开发者创建多种类型的图表,如饼状图、柱状图、曲线图等,广泛应用于数据可视化和报告生成。本资料提供的"jfreechar画图源代码"包含了作者自己编写的能运行并显示结果的...

    JFreeChar 图形拖拉

    发现有关JFreeChar 拖拉的东西网上资源忒少,所以就花了点时间去研究了一下。这里面有柱状图,甘特图,折线图等拖拉的例子,相信对那些正在研究JFreeChar 和正在为JFreeChar 图形拖拉问题困扰的人有所帮助。

    JFreechar简单报表例子

    它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、面积图、甘特图等,广泛应用于数据分析、报表制作以及各种Java应用程序中。JFreeChart通过其强大的API,使得开发者能够轻松地在程序中集成图表功能,动态...

    jfreechar完整的例子

    JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图表类型,如柱状图、饼图、线形图、散点图、甘特图等,适用于各种数据分析和展示的需求。这个压缩包“JfreeChar完整的例子”包含了使用JFreeChart创建...

Global site tag (gtag.js) - Google Analytics