package cn.xfz.oa.util; import java.awt.Font; import java.util.List; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartTheme; import org.jfree.chart.JFreeChart; import org.jfree.chart.StandardChartTheme; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.CategoryDataset; import org.jfree.data.general.DatasetUtilities; import org.jfree.data.general.DefaultPieDataset; /** * 创建柱状图 * */ public class BarChartUtil { /** * 获得数据集。 * * @return org.jfree.data.category.CategoryDataset */ private static DefaultPieDataset getDataset(List<Object[]> data) { DefaultPieDataset dfp = new DefaultPieDataset(); for (Object[] arr : data) { dfp.setValue((String) arr[0], (Double) arr[1]); } return dfp; } /** * * */ private static ChartTheme getChartTheme() { // 处理中文乱码 StandardChartTheme chartTheme = new StandardChartTheme("CN"); // 标题 chartTheme.setExtraLargeFont(new Font("宋体", Font.BOLD, 20)); // legend chartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 18)); // 轴向字体 chartTheme.setLargeFont(new Font("宋体", Font.PLAIN, 16)); return chartTheme; } /** * 生成柱状图。 */ public static JFreeChart makeBarChart3D(String title, List<Object[]> data) { // 1.获得数据集 DefaultPieDataset dataset = getDataset(data); ChartFactory.setChartTheme(getChartTheme()); // 2.创建一个柱状图 JFreeChart chart = ChartFactory.createPieChart(title, // 图表标题 dataset, // 数据集 true, // 是否显示图例 legend true, // 是否生成工具(提示) 提示 true // 是否生成URL链接 ); return chart; } }
直接贴上代码,有不懂得地方添加微信:qh2827