JFreeChart

JFreeChart生成饼状图
2008-12-11 18:39

一、需要jfreechart-1.0.0-rc1.jar,jcommon-1.0.0-rc1.jar包 将其放在lib下

二、在web.xml里如下配置:

<!-- jfreechart配置 -->
   <servlet>
       <servlet-name>DisplayChart</servlet-name>
       <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
   </servlet>
   <servlet-mapping>
       <servlet-name>DisplayChart</servlet-name>
       <url-pattern>/servlet/DisplayChart</url-pattern>
   </servlet-mapping>

三、饼图代码:

package com.lei.jfreechart;

import java.awt.Font;
import java.text.DecimalFormat;
import java.text.NumberFormat;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class FirstJFreeChart extends ApplicationFrame {

/**
*
*/
   private static final long serialVersionUID = 1L;

//构造函数
   public FirstJFreeChart(String s){
     super(s);
     setContentPane(createDemoPanel());
   }
  
   public static void main(String[] args){
     FirstJFreeChart fjc = new FirstJFreeChart("CityInfoPort公司组织架构图");
     fjc.pack();
     RefineryUtilities.centerFrameOnScreen(fjc);
     fjc.setVisible(true);
   }
  
   //生成饼图数据集对象
   public static PieDataset createDataset(){
     DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
     defaultpiedataset.setValue("管理人员",10.00D);
     defaultpiedataset.setValue("市场人员",20.00D);
     defaultpiedataset.setValue("开发人员",50.00D);
     defaultpiedataset.setValue("OEM人员",10.00D);
     defaultpiedataset.setValue("其他人员",10.00D);
    
     return defaultpiedataset;
   }
  
   //生成图表主对象JFreeChart
   public static JFreeChart createChart(PieDataset piedataset){
     //定义图表对象
     JFreeChart jfreechart = ChartFactory.createPieChart("CityInfoPort公司组织架构图", // 图表标题
                   piedataset, //数据集
                   true, //是否显示图例
                   true, // 是否生成工具
                   false); // 是否生成URL链接
    
     PiePlot pieplot = (PiePlot)jfreechart.getPlot(); //获得图表显示对象
     pieplot.setLabelFont(new Font("SansSerif",Font.BOLD,15)); //设置图表标签字体
     pieplot.setNoDataMessage("No data available"); //设置没有数据时显示的内容
     pieplot.setCircular(true); //true表示圆形 false表示椭圆
     pieplot.setLabelGap(0.01D);//间距
     //("{0}: ({1},{2})")是生成的格式,{0}表示section名,{1}表示section的值,{2}表示百分比。可以自定义。而new DecimalFormat("0.00%")表示小数点后保留两位。
     StandardPieSectionLabelGenerator generator = new StandardPieSectionLabelGenerator(("{0}: ({1},{2})"), NumberFormat.getNumberInstance(),new DecimalFormat("0.00%"));
     pieplot.setLabelGenerator(generator);

     return jfreechart;
   }
  
   //生成显示图表的面板
   public static JPanel createDemoPanel(){
     JFreeChart jfreechart = createChart(createDataset());
     return new ChartPanel(jfreechart);
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值