• JFreeChat学习圆饼状图的创建(结合serlvet,非原创)!


    第一步:准备圆饼图数据

     /**
         * 创建一个数据集合
         * 
         * @return 返回的是一个圆饼图数据
         */ 
        private static DefaultPieDataset getDataSet() { 
            DefaultPieDataset dataset = new DefaultPieDataset(); 
            dataset.setValue("苹果", 100); 
            dataset.setValue("梨子", 200); 
            dataset.setValue("葡萄", 300); 
            dataset.setValue("香蕉", 400); 
            dataset.setValue("荔枝", 500); 
            return dataset; 
        } 

    第二步:利用HttpServlet的service方法

      public void service(ServletRequest req, ServletResponse res) 
                throws ServletException, IOException { 
            res.setContentType("image/jpeg");// 将输出设置为image/jepg格式 
            DefaultPieDataset data = getDataSet();// 创建数据集合容器 
            JFreeChart chart = ChartFactory.createPieChart3D("水果产量图", // 图表标题 
                    data, // 数据集 
                    true, // 是否显示图例 
                    false, // 是否生成工具 
                    false // 是否生成URL链接 
                    );// 创建图表  
            ChartUtilities.writeChartAsJPEG(res.getOutputStream(), 1.0f, chart, 
                    800, 450, null);// 输出图表  
        }  

    第三步:配置WEB.XML之中 的 servlet,这里不废话

     第四步:在JSP页面显示:

    <img src="servlet的配置路径"/>

     第五步:补充,修正中文出现 口口 的问题:

    Font titleFont = new Font("黑体", Font.BOLD, 20); 
        TextTitle textTitle = chart.getTitle(); 
        textTitle.setFont(titleFont);// 为标题设置上字体 
     
    Font plotFont = new Font("宋体", Font.PLAIN, 16); 
    PiePlot plot = (PiePlot) chart.getPlot(); 
    plot.setLabelFont(plotFont); // 为饼图元素设置上字体 
     
    Font LegendFont = new Font("楷体", Font.PLAIN, 18); 
    LegendTitle legend = chart.getLegend(0); 
    legend.setItemFont(LegendFont);// 为图例说明设置字体

    第六步:让圆饼图显示每一种情况占用了多少百分比

    plot.setLabelGenerator(new StandardPieSectionLabelGenerator(

    "{0} {2}",NumberFormat.getNumberInstance(),

    new DecimalFormat("0.00%")));// 显示百分比 

    最终显示:

     

     

  • 相关阅读:
    Solution -「CF 1025G」Company Acquisitions
    Solution -「Code+#4」「洛谷 P4370」组合数问题 2
    YApi,顶尖API接口管理平台
    Hibernate (开放源代码的对象关系映射框架)
    【LeetCode】5. 最长回文子串
    【LeetCode】105. 从前序与中序遍历序列构造二叉树
    【LeetCode】76. 最小覆盖子串
    【LeetCode】974. 和可被 K 整除的子数组
    【LeetCode】394. 字符串解码
    【LeetCode】5424. 数组中两元素的最大乘积
  • 原文地址:https://www.cnblogs.com/liuhuapiaoyuan/p/3113468.html
Copyright © 2020-2023  润新知