JFreeChart生成各种各样的图表之饼图
????????? 我们简单介绍JFreeChart项目后,下面开始动手编写各种各样的图表
??? 建立个web工程,解压.zip文件,到lib文件夹下,把jfreechart与jcomman的jar文件加到工程里面
??? 饼图
??? 建一个servlet,然后在service方法里面写以下内容
?
public class PieChartDemo extends HttpServlet { public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { response.setContentType("image/jpeg"); //创建一个数据集对象 DefaultPieDataset dpd = new DefaultPieDataset(); //设置数据的对象的说明与数据 dpd.setValue("C/C++", 20); dpd.setValue("Java", 50); dpd.setValue("Php", 15); dpd.setValue("JavaScript", 15); dpd.setValue("Python", 10); //创建一个饼形图表对象 JFreeChart jFreeChart = ChartFactory.createPieChart("08年使用语言的排行榜", dpd, true, true, false); jFreeChart.getTitle().setFont(new Font("宋体", 0, 12)); // 设置图表区域对象 PiePlot piePort = (PiePlot)jFreeChart.getPlot(); //设置图表区域的标签字体 piePort.setLabelFont(new Font("宋体", 0, 12)); //设置图表区域无数据时显示的文字 piePort.setNoDataMessage("没有可排行数据"); // 设置图表区域不是圆形,由于是3D的饼形图,所以设置为false piePort.setCircular(false); //设置图表区域的文字与图表区域的间隔 piePort.setLabelGap(0.02D); //将图表以数据流的方式返回客户端 ChartUtilities.writeChartAsPNG(response.getOutputStream(), jFreeChart, 500, 270); }}
?
??? 图表效果如下:
???