jfreechar做报表

package Actio;

import java.awt.Font;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.time.Year;
import org.jfree.ui.RectangleInsets;

public class JfreechatTuXing {
  /*
   *    dataset 数据集 title 图形的标题  x 横柱的标题  y纵柱的标题 request 设置生成图片的路径
   *    return 图片的路径
   *
   * */
 public String JfreechatZhuZhuang(DefaultCategoryDataset dataset,String title,String x,String y,HttpServletRequest request)
 {
    String imgname1="";
       try {
 //      用传过来的参数生产那个图形
   JFreeChart jfc1=ChartFactory.createBarChart3D(title,x,y,dataset,PlotOrientation.VERTICAL,true,true,true);
    CategoryPlot plot =  jfc1.getCategoryPlot();
    BarRenderer3D renderer1 = new BarRenderer3D();
    renderer1.setItemLabelsVisible(true);
    renderer1.setItemMargin(0.1);
    plot.setRenderer(renderer1);
   //图片的路径
    imgname1=request.getRealPath("/image")+"chart1.jpg";
 //  设置图片的大小
   ChartUtilities.saveChartAsJPEG(new File(imgname1), jfc1, 500, 240);
} catch (IOException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}

  return imgname1;
 }
 
   /*
    *  饼状图 piedataset 数据集 title 图形的标题
    *  return 图片的生成路径
    * */
 public String JfreechatBingZhuang(DefaultPieDataset piedataset,String title,HttpServletRequest request)
 {
  String imgname2="";
  try {
   
      JFreeChart jfc3=ChartFactory.createPieChart3D(title, piedataset, true, true, true);
 
         imgname2=request.getRealPath("/image")+"chart2.jpg";
     //  用chartUtilities生成图形
      ChartUtilities.saveChartAsJPEG(new File(imgname2), jfc3, 500, 240);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
   return imgname2;
 }
 
 
 public String JfreechatXianXing(DefaultCategoryDataset dataset,String title,String x,String y,HttpServletRequest request)
 {
  String imgname3="";
  try {
   JFreeChart jfc2=ChartFactory.createLineChart(title, x, y, dataset, PlotOrientation.VERTICAL, true, true, true);
      imgname3=request.getRealPath("/image")+"chart3.jpg";
   ChartUtilities.saveChartAsJPEG(new File(imgname3), jfc2, 500, 240);
   
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return imgname3;
  
 }
  /*
   *  线形图
   *
   */
 public String getQuXianTu(List<Integer> list,HttpServletRequest request,String title,String x,String y){
  TimeSeries timeSeries = new TimeSeries("", Year.class);
  TimeSeriesCollection lineDataset = new TimeSeriesCollection();
  int j = 2001;
  for (int i = 0; i < list.size(); i++) {
    System.out.println(new Year(j));
   timeSeries.add(new Year(j),list.get(i));
      j = j+1;
  }
  lineDataset.addSeries(timeSeries);
  JFreeChart chart = ChartFactory.createTimeSeriesChart(title, x, y, lineDataset, true, false, true);
  XYPlot plot = (XYPlot) chart.getPlot();
//  XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot.getRenderer();
  DateAxis   axis   =   (DateAxis) plot.getDomainAxis();  
  axis.setDateFormatOverride(new SimpleDateFormat("yyy"));
  plot.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 10D));
//   xylineandshaperenderer.setBaseShape(plot, true);
  XYItemRenderer xyitem = plot.getRenderer();  
  xyitem.setBaseItemLabelsVisible(true);  
  xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
  xyitem.setBaseItemLabelFont(new Font("Dialog", 1, 12));
  plot.setRenderer(xyitem);
  String filename = request.getRealPath("/image")+"chart4.jpg";
  
   try {
    ChartUtilities.saveChartAsPNG(new File(filename), chart, 500, 240);
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

  System.out.println(filename);
  return filename;
  
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值