JfreeChart实例

package org.hibernate.test;



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.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
/**
 * 该类用于演示最简单的柱状图生成
 * @author Winter Lau
 */
public class  JfreeChartTest {
	public static void main(String[] args) throws IOException{
/**********************************柱状图*****************************/		
/*
		CategoryDataset dataset = getDataSet();//数据集合方法getDataSet2()
		JFreeChart chart = ChartFactory.createBarChart3D(
							"水果产量图", // 图表标题
							"水果", // 目录轴的显示标签
							"产量", // 数值轴的显示标签
							dataset, // 数据集
							PlotOrientation.VERTICAL, // 图表方向:水平、垂直
							true, 	// 是否显示图例(对于简单的柱状图必须是false)
							false, 	// 是否生成工具
							false 	// 是否生成URL链接
							);
						
/****************************柱状图修饰背景与字体(可有可无)**************************************/
/*		
		chart.setBackgroundPaint(Color.white);
        CategoryPlot plot  =  chart.getCategoryPlot();

        CategoryAxis domainAxis  =  plot.getDomainAxis();
         // domainAxis.setVerticalCategoryLabels( false );
        plot.setDomainAxis(domainAxis);

        BarRenderer3D renderer  =   new  BarRenderer3D();
        renderer.setBaseOutlinePaint(Color.BLACK);

         // 设置每个地区所包含的平行柱的之间距离
        renderer.setItemMargin( 0.1 );
         // 显示每个柱的数值,并修改该数值的字体属性
        renderer.setItemLabelGenerator( new  StandardCategoryItemLabelGenerator());
        renderer.setItemLabelsVisible( true );
        plot.setRenderer(renderer);
         //  设置柱的透明度
        plot.setForegroundAlpha( 0.8f);
/************************************柱状图修饰背景与字体(可有可无)*****************************************/					
		/**********************************柱状图*****************************/								

/**********************************饼图*****************************/	
			DefaultPieDataset data = getDataSet3();//数据集合方法
			JFreeChart chart = ChartFactory.createPieChart("水果产量图",// 图表标题
					data,  // 数据集
					true, // 是否显示图例(对于简单的柱状图必须是false)
					false, 	// 是否生成工具
					false); 	// 是否生成URL链接
/**********************************饼图*****************************/			
		FileOutputStream fos_jpg = null;
		try {
			fos_jpg = new FileOutputStream("F:/fruit.jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg,chart,500,400);
		} finally {
			try {
				fos_jpg.close();
			} catch (Exception e) {}
		}
	}
	/**
	 * 获取一个演示用的简单数据集对象 柱状图
	 * @return
	 */
	private static CategoryDataset getDataSet() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(100, "苹果", "苹果");
		dataset.addValue(200, "梨子", "梨子");
		dataset.addValue(300,"葡萄", "葡萄");
		dataset.addValue(400, "香蕉", "香蕉");
		dataset.addValue(500, "荔枝", "荔枝");
		return dataset;
	}
	/**
	 * 获取一个演示用的组合数据集对象 柱状图
	 * @return
	 */
	private static CategoryDataset getDataSet2() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(100, "北京", "苹果");
		dataset.addValue(100, "上海", "苹果");
		dataset.addValue(100, "广州", "苹果");
		dataset.addValue(200, "北京", "梨子");
		dataset.addValue(200, "上海", "梨子");
		dataset.addValue(200, "广州", "梨子");
		dataset.addValue(300, "北京", "葡萄");
		dataset.addValue(300, "上海", "葡萄");
		dataset.addValue(300, "广州", "葡萄");
		dataset.addValue(400, "北京", "香蕉");
		dataset.addValue(400, "上海", "香蕉");
		dataset.addValue(400, "广州", "香蕉");
		dataset.addValue(500, "北京", "荔枝");
		dataset.addValue(500, "上海", "荔枝");
		dataset.addValue(500, "广州", "荔枝");
		return dataset;
	}
	
	/**
	 * 获取一个演示用的简单数据集对象 饼图
	 * @return
	 */
	private static DefaultPieDataset getDataSet3() {
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("苹果",100);
		dataset.setValue("梨子",200);
		dataset.setValue("葡萄",300);
		dataset.setValue("香蕉",400);
		dataset.setValue("荔枝",500);
		return dataset;
	}

}

你可能感兴趣的:(Hibernate,F#,jfreechart)