欢迎来到一念的实践博客园

使用JFreeChart创建柱状图的工具类

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

posted @ 2017-10-19 10:30  红早  阅读(361)  评论(0编辑  收藏  举报
你好,感谢您的支持!