`
quzhan87com
  • 浏览: 55339 次
  • 性别: 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.plot.PiePlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;

public class CreatePieChart {
	private static JFreeChart chart;
	private static DefaultPieDataset 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(chart, "D:\\PieXY.png", 600, 400);      
      
        //显示  
        ChartFrame frame = new ChartFrame("BarChart Tesing!", chart);
        frame.pack();
        frame.setVisible(true);
	}
	/**
	 * Create DataSet
	 */
	private static void createDataset() {
		dataset = new DefaultPieDataset();
		double[][] data = new double[][] {{1, 2, 3, 4, 5},{7, 9, 14, 21, 31}};
		String[] rowKeys = {"合格","不合格"};
		String[] columnKeys = {"第一种","第二种","第三种","第四种","第五种"};
		Double d= 0.0;
		for (int j = 0; j < columnKeys.length; j++) {
		  for (int i = 0; i < rowKeys.length; i++) {
				d = d + data[i][j];
			}
			dataset.setValue(columnKeys[j], d);
		}
	}
	/**
	 * 饼图
	 */
	public static void createChart() {
		chart = ChartFactory.createPieChart("饼状图", dataset, true, true, true);	
		PiePlot plot = (PiePlot)chart.getPlot();
		plot.setBackgroundPaint(new Color(238, 244, 255));//设置图表的颜色	
		chart.setBackgroundPaint(Color.white);
		setChartFont();
	}
	/**
	 * 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); 
		
		//获得图表区域对象 
		PiePlot plot = (PiePlot)chart.getPlot();
		plot.setLabelFont(f);
		
		//legend(图释)
		chart.getLegend().setItemFont(f);
	}
}


运行得到的图片:


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

相关推荐

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

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

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

    - "jfreecharss"和"jfreechar"可能是包含JFreeChart示例代码或资源的文件。分析这些文件可以帮助理解如何在实际项目中使用JFreeChart。 综上所述,JFreeChart是一个强大的Java图表库,能够方便地生成各种图表,...

    JFreeChar制作饼图和柱状图

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

    jfreechar画图源代码

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

    JFreeChar做各种图表

    JFreeChart是一款强大的开源Java图表库,它允许开发者创建各种复杂的图表,包括折线图、饼状图、柱状图、散点图、甘特图等多种类型。这个项目已经预置了各种图表示例,部署后可以直接运行,为用户提供直观的数据可视...

    JFreechar使用文档

    JFreeChart 是一个用于 Java 的开源图表库,它提供了一种简单的方法来创建各种复杂的图表,如饼状图、柱状图、折线图等。这个文档将详细介绍如何使用 JFreeChart 来生成这些常见的图表类型。 ### 一、生成饼状图 ...

    JfreeChar示例

    JFreeChart 是一个用于创建高质量图表的开源 Java 库,它在 Java 开发中被广泛用于生成柱状图、折线图、饼状图等多种图表类型。这个示例项目旨在帮助开发者更好地理解和使用 JFreeChart,以在实际应用中展示数据。...

    JfreeChar实例

    这个实例将帮助我们深入理解如何使用JFreeChart来创建柱状图、线性图和饼状图,这些是数据可视化中最常用的图表类型。通过在Eclipse中导入提供的工程,我们可以直观地看到代码如何转化为可视化的图表。 首先,让...

    jfreechart-1.0.19+docx4j.zip

    Jfreechar所需的jar包,JFreeChart是JAVA平台上的一个开放的图表绘制类库,JFreeChart可生成饼图,柱状图,散点图等等。。赠送jdk1.6 图片导出到word图表docx4j.jar

    java实现柱状图

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

    java生成图形报表组件

    Java生成图形报表组件是一种强大的工具,它主要用于在Java应用程序中创建和展示各种类型的图表,如曲线图、饼状图、柱状图以及时序图。这个组件通常包含一系列的类和方法,允许开发者通过编程方式定义数据源、样式和...

    java生成饼图svg及JFreeChart生成svg图表

    JFreeChart是一个强大的Java库,能够生成各种类型的图表,包括饼状图。然而,JFreeChart默认并不支持直接生成SVG格式的图像,但可以通过与其他库如Apache Batik的集成来实现。 Apache Batik是一个开源工具包,它...

    jfreechart-1.0.4.jar jfreechart-1.0.4-swt.jar

    //设置生成饼状图 int i=0; String[] area={"南京市","镇江市","常州市","无锡市","苏州市","南通市"}; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con=DriverManager.getConnection(...

Global site tag (gtag.js) - Google Analytics