JFreeChart 使用一 饼图之简单实例

使用JFreeChart创建图表共有三个步骤。如下:

l创建一个dataset。该dataset包含图表要显示的数据。

l创建一个JFreeChart对象。该对象负责画这个图表。

l创建一个输出目标(如:一个panel,显示在屏幕上、或者生成一张图片到本地磁盘、或者输出到Response的流中返回到JSP)

使用JFreeChart生成饼图可以使用任何符合PieDataset接口的任何实现数据来创建饼图。DefaultDataset类实现了PieDataset接口,提供了一种便利的使用方式。我们可以自由的开发符合实际需的任意PieDataset接口实现。

饼图生成代码实例如下:

 

复制代码
public class PieChartExample       
{       
                      
    /**       
     * 创建PieChart       
     *        
     * @author 马建新(mervin)       
     * @return 生成Chart图片的地址       
     */
    public String createPieChart()       
    {       
                      
        String filePath = "D:\\testJfreeChart.jpg";       
        try
        {       
            DefaultPieDataset dataset = getPieDataSet();       
                      
            // JFreeChart主要由三个部分构成:title(标题),legend(图释),plot(图表主体)。         
            JFreeChart chart = ChartFactory.createPieChart("测试PieChart",       
                    dataset, true, true, false);       
            //设置Chart属性       
            setChartProperties(chart);       
                      
            ChartUtilities.saveChartAsJPEG(new File(filePath), chart, 400, 300);       
        } catch (IOException e)       
        {       
            e.printStackTrace();       
        }       
        return filePath;       
    }       
                      
    /**       
     * 设置Chart属性,可解决乱码问题       
     * @param chart 统计图标       
     */
    private void setChartProperties(JFreeChart chart){       
                              
        //三个部分设置字体的方法分别如下:         
        TextTitle textTitle = chart.getTitle();         
        textTitle.setFont(new Font("宋体", Font.BOLD, 20));         
        LegendTitle legend = chart.getLegend();         
        if (legend != null) {         
            legend.setItemFont(new Font("宋体", Font.BOLD, 20));         
        }         
        PiePlot pie = (PiePlot) chart.getPlot();         
        pie.setLabelFont(new Font("宋体", Font.BOLD, 12));         
        pie.setNoDataMessage("No data available");         
        //设置PieChart是否显示为圆形    
        pie.setCircular(true);    
        // 间距    
        pie.setLabelGap(0.01D);       
    }       
                          
    /**       
     * 获得PieChart的数据集       
     *        
     * @return pieChart数据集       
     */
    private DefaultPieDataset getPieDataSet()       
    {       
        DefaultPieDataset dataset = new DefaultPieDataset();       
        dataset.setValue("香蕉", 56.4);       
        dataset.setValue("苹果", 63.5);       
        dataset.setValue("橘子", 58.4);       
        dataset.setValue("西瓜", 76.3);       
        return dataset;       
    }       
                      
    /**       
     * @param args       
     */
    public static void main(String[] args)       
    {       
        PieChartExample piechart = new PieChartExample();       
        String filePath = piechart.createPieChart();       
        System.out.println("PieChart file path : " + filePath);       
        try
        {       
            Runtime.getRuntime().exec(       
                    "rundll32 url.dll FileProtocolHandler " + filePath);       
        } catch (IOException e)       
        {       
            e.printStackTrace();       
        }       
    }       
                      
}
复制代码

 转载自:  http://www.cnblogs.com/jtmjx/archive/2013/04/23/jfreechart_simplePieChart.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值