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; } }