本帖最后由 cengjindewo 于 2009-09-11 11:01:16 编辑

解决方案 »

  1.   

    csdn--> search jfreechart 
    这些日子有不少例子,出来就问,不如搜搜好.
      

  2.   

    http://www.ibm.com/developerworks/cn/java/l-jfreechart/
    或许这里的资料能帮助到你。
      

  3.   

    csdn下载区有柱图带数字的,我下载过使用。
      

  4.   

    我只用jfreechart画过柱状图,
    给出如下代码:
    <%@page pageEncoding="gbk"%> <%@page import=" java.io.FileNotFoundException " %> 
    <%@page import=" java.io.FileOutputStream " %> 
    <%@page import=" org.apache.commons.logging.Log " %> 
    <%@page import=" java.io.IOException,edu.jmi.dao.*,java.util.*" %> 
    <%@page import=" org.jfree.chart.servlet.ServletUtilities" %> <%@page import=" org.apache.commons.logging.LogFactory " %> 
    <%@page import=" org.jfree.chart.ChartFactory " %> 
    <%@page import=" org.jfree.chart.ChartUtilities " %> 
    <%@page import=" org.jfree.chart.JFreeChart " %> 
    <%@page import=" org.jfree.chart.plot.PlotOrientation " %> 
    <%@page import=" org.jfree.data.category.CategoryDataset " %> 
    <%@page import=" org.jfree.data.category.DefaultCategoryDataset " %> <%@page import = " java.awt.Color " %> 
    <%@page import = " org.jfree.chart.renderer.category.BarRenderer3D " %> 
    <%@page import = " org.jfree.chart.labels.StandardCategoryItemLabelGenerator " %> 
    <%@page import = " org.jfree.chart.axis.* " %> 
    <%@page import = " org.jfree.chart.plot.CategoryPlot " %> <% 
      ProjectDao pd=new ProjectDao();
    List list=pd.statyear();
    request.setAttribute("list",list);
    List list2=new ArrayList();
    int count=0;int count1=0;
      DefaultCategoryDataset dataset  =  new  DefaultCategoryDataset();
      for(int i=0;i<list.size();i++)
      {
        list2=pd.resultOfYear(Integer.parseInt(list.get(i).toString()));
        count=0;count1=0;
        for(int j=0;j<list2.size();j++)
        {
         if(j==0)
         {
          count=count+Integer.parseInt(list2.get(j).toString());
         }
         if(j==1||j==3)
         {
           count1=count1+Integer.parseInt(list2.get(j).toString());
         }
         if(j==0&&count!=0||(j==3&&count1!=0))
         {
          dataset.addValue( count ,  "申请课题数" ,  list.get(i).toString() );
          dataset.addValue( count1 ,  "通过" ,  list.get(i).toString() );
         }
        }
      }
      dataset.addValue(0 ,  "申请课题数" ,  "其他");
      dataset.addValue(0,  "通过" ,"其他");
           JFreeChart chart=ChartFactory.createBarChart3D( " 年度课题统计" , "  " , " 数量 " ,dataset,PlotOrientation.VERTICAL, true , false , false );
            chart.setBackgroundPaint(Color.LIGHT_GRAY);
            CategoryPlot plot  =  chart.getCategoryPlot();        CategoryAxis domainAxis  =  plot.getDomainAxis();
             // domainAxis.setVerticalCategoryLabels( false );
            plot.setDomainAxis(domainAxis);
     //获取纵坐标
      CategoryPlot categoryPlot=chart.getCategoryPlot();  
           NumberAxis numberaxis = (NumberAxis)categoryPlot.getRangeAxis();  
           //将纵坐标间距设置为50 
           numberaxis.setTickUnit(new NumberTickUnit(5));//设置纵坐标增长的幅度
           numberaxis.setAutoRange(false);//设置是否自动限制最大范围
           numberaxis.setRange(0,50);//设置纵坐标最小,最大显示数据
           BarRenderer3D renderer=new  BarRenderer3D();
           renderer.setBaseOutlinePaint(Color.BLACK);
             // 设置每个地区所包含的平行柱的之间距离
            renderer.setItemMargin(0.1);
             // 显示每个柱的数值,并修改该数值的字体属性
            renderer.setItemLabelGenerator( new  StandardCategoryItemLabelGenerator());
            renderer.setItemLabelsVisible( true );
            renderer.setMaximumBarWidth(0.06D);
            plot.setRenderer(renderer);         //  设置柱的透明度
            plot.setForegroundAlpha(0.8f);   //ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart, 640 , 400 );
       String filename = ServletUtilities.saveChartAsJPEG(chart, 650, 350, null, session); //设置生成图片的宽高,这里的宽高一定要最好与下面的图片的宽高一致,这样才能保证图片清晰
      String graphURL =request.getContextPath()+"/servlet/DisplayChart?filename="+filename; 
    %> 
    <body bgcolor="#E4E8Ef">
    <center><img src="<%=graphURL %>" width=650 height=350 border=0 usemap="#<%=filename%>"><br> <br> <br> <br> 
    <input type="button" value="点击查看详情" onclick="window.open('allYear.jsp','_self')">
    </center>
    </body>