使用Jfreechar 实现基于web 的2D/3D饼图

在我的前一篇博客<<使用JFreeChart实现基于web的3D柱状图>>中我对jFreechar进行了简单的介绍,并做了一个柱形图的小demo,那么今天我们就来给大家介绍一下JFreechar如何制作饼形图:

1.2D饼形图

<span style="font-size:18px;"><%@ page contentType="text/html;charset=UTF-8"%>
 
 <%@ page import="org.jfree.chart.*,
                  org.jfree.chart.plot.PiePlot,              org.jfree.data.general.DefaultPieDataset,
 org.jfree.chart.servlet.ServletUtilities,
                  java.awt.*"%>
 <%
 //设置数据集
 DefaultPieDataset dataset = new DefaultPieDataset();
 dataset.setValue("初中高级程序员", 0.55);
 dataset.setValue("项目经理", 0.1);
 dataset.setValue("系统分析师", 0.1);
 dataset.setValue("软件架构师", 0.1);
 dataset.setValue("其他", 0.2);
 
 
 //通过工厂类生成JFreeChart对象
 JFreeChart chart = ChartFactory.createPieChart3D("IT行业职业分布图", dataset, true, false, false);
 PiePlot pieplot = (PiePlot) chart.getPlot();
 pieplot.setLabelFont(new Font("宋体", 0, 12));
 //没有数据的时候显示的内容
 pieplot.setNoDataMessage("无数据显示");
 pieplot.setCircular(false);
 
 
 String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session); //所生成的图片的名字
 String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename; //获取所生成的统计的地址
 %>
 <img src="<%= graphURL %>"width=500 height=300 border=0 usemap="#<%= filename %>">
</span>

其效果如下:


2.3D水晶图

<span style="font-size:18px;"><%@ page contentType="text/html;charset=GBK"%>
 
 <%@ page import="org.jfree.chart.*,
 org.jfree.chart.servlet.ServletUtilities,
                  org.jfree.util.Rotation,
 org.jfree.data.general.DefaultPieDataset,
 org.jfree.chart.plot.PiePlot3D"%>
 
 <%
 //设置数据集
 DefaultPieDataset dataset = new DefaultPieDataset();
 dataset.setValue("初中高级程序员", 0.55);
 dataset.setValue("项目经理", 0.1);
 dataset.setValue("系统分析师", 0.1);
 dataset.setValue("软件架构师", 0.1);
 dataset.setValue("其他", 0.2);
 
 //通过工厂类生成JFreeChart对象
 JFreeChart chart = ChartFactory.createPieChart3D("IT行业职业分布图", dataset, true, true, false);
 //获得3D的水晶饼图对象
 PiePlot3D pieplot3d = (PiePlot3D) chart.getPlot();
 //设置开始角度
 pieplot3d.setStartAngle(150D);
 //设置方向为”顺时针方向“
 pieplot3d.setDirection(Rotation.CLOCKWISE);
 //设置透明度,0.5F为半透明,1为不透明,0为全透明
 pieplot3d.setForegroundAlpha(0.5F);
 pieplot3d.setNoDataMessage("无数据显示");      
 
 String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
 String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
 %>
 <img src="<%= graphURL %>"width=500 height=300 border=0 usemap="#<%= filename %>">
</span>

效果图:


这些图看着是不是和excel表格中做统计的图一样.在做系统或者是平台的时候,总是少不了统计和报表.其中统计图是给人一种宏观上的把控,表格给人的是一种围观的把控.学会用一种绘制统计图的工具是很有必要的,同时也是占优势的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弯_弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值