1
public ActionForward jfree(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException { List<String> list = new ArrayList<String>(); int i =0; Font font = new Font("sans-serif", Font.PLAIN, 11); //访问量统计时间线 TimeSeries timeSeries2006 = new TimeSeries("2006年度", "domanin","range"); TimeSeries timeSeries2007 = new TimeSeries("2007年度", "domanin","range"); TimeSeries timeSeries2008 = new TimeSeries("", "",""); //时间曲线数据集合 TimeSeriesCollection lineDataset9 = new TimeSeriesCollection(); //构造数据集合 timeSeries2006.add(new Month(1, 2007), 7200); timeSeries2006.add(new Month(2, 2007), 7000); timeSeries2006.add(new Month(3, 2007), 4200); timeSeries2006.add(new Month(4, 2007), 8200); timeSeries2006.add(new Month(5, 2007), 7300); timeSeries2006.add(new Month(6, 2007), 8200); timeSeries2006.add(new Month(7, 2007), 9200); timeSeries2006.add(new Month(8, 2007), 7300); timeSeries2006.add(new Month(9, 2007), 9400); timeSeries2006.add(new Month(10, 2007), 7500); timeSeries2006.add(new Month(11, 2007), 6600); timeSeries2006.add(new Month(12, 2007), 3500); timeSeries2007.add(new Month(1, 2007), 10200); timeSeries2007.add(new Month(2, 2007), 9000); timeSeries2007.add(new Month(3, 2007), 6200); timeSeries2007.add(new Month(4, 2007), 8200); timeSeries2007.add(new Month(5, 2007), 8200); timeSeries2007.add(new Month(6, 2007), 11200); timeSeries2007.add(new Month(7, 2007), 12200); timeSeries2007.add(new Month(8, 2007), 8300); timeSeries2007.add(new Month(9, 2007), 10400); timeSeries2007.add(new Month(10, 2007), 12800); timeSeries2007.add(new Month(11, 2007), 10600); timeSeries2007.add(new Month(12, 2007), 10500); //timeSeries2007.add(new Month(1, 2008),1); timeSeries2008.add(new Month(1, 2008),null); timeSeries2008.add(new Month(12, 2006),null); lineDataset9.addSeries(timeSeries2006); lineDataset9.addSeries(timeSeries2007); lineDataset9.addSeries(timeSeries2008); JFreeChart jfreechart9 = ChartFactory.createTimeSeriesChart("访问量统计时间线9", "月份", "访问量", lineDataset9, true, true, true); //设置子标题 TextTitle subtitle9 = new TextTitle("2006/2007年度访问量对比9", font); jfreechart9.addSubtitle(subtitle9); //设置主标题 jfreechart9.setTitle(new TextTitle("阿蜜果blog访问量统计9", font)); jfreechart9.setAntiAlias(true); String filePathImage9 = DateUtil.formatDate2String(new java.util.Date(), "yyyyMMddHHmmss")+i+ "_Indicator.gif"; String filePath9 = "businessAnalysis/" + filePathImage9; String path9=request.getSession().getServletContext().getRealPath("/") + filePath9; jfreechart9.getTitle().setFont(font); XYPlot xypt9= (XYPlot)jfreechart9.getPlot(); xypt9.getDomainAxis().setLabelFont(font); xypt9.getDomainAxis().setTickLabelFont(font); jfreechart9.getLegend().setItemFont(font);//决绝底部标题中午乱码 xypt9.getRangeAxis().setLabelFont(font); xypt9.getRangeAxis().setTickLabelFont(font); XYLineAndShapeRenderer xylineandshaperenderer9 = (XYLineAndShapeRenderer)xypt9.getRenderer(); //设置网格背景颜色 xypt9.setBackgroundPaint(Color.white); //设置网格竖线颜色 xypt9.setDomainGridlinePaint(Color.pink); //设置网格横线颜色 xypt9.setRangeGridlinePaint(Color.pink); //设置曲线图与xy轴的距离 xypt9.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 0D)); //设置曲线是否显示数据点 xylineandshaperenderer9.setBaseShapesVisible(true); //设置曲线显示各数据点的值 XYItemRenderer xyitem9 = xypt9.getRenderer(); xyitem9.setBaseItemLabelsVisible(true); xyitem9.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT)); xyitem9.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); xyitem9.setBaseItemLabelFont(new Font("Dialog", 1, 14)); JfreeChartBuilder.createImage(request, response, path9, jfreechart9, 1.0f, 600, 400); list.add(filePath9); //------------------------------------ //访问量统计时间线 TimeSeries timeSeries1 = new TimeSeries("阿蜜果blog访问量统计", "",""); //时间曲线数据集合 TimeSeriesCollection lineDataset8 = new TimeSeriesCollection(); //构造数据集合 timeSeries1.add(new Month(1, 2007), 11200); timeSeries1.add(new Month(2, 2007), 9000); timeSeries1.add(new Month(3, 2007), 6200); timeSeries1.add(new Month(4, 2007), 8200); timeSeries1.add(new Month(5, 2007), 8200); timeSeries1.add(new Month(6, 2007), 12200); timeSeries1.add(new Month(7, 2007), 13200); timeSeries1.add(new Month(8, 2007), 8300); timeSeries1.add(new Month(9, 2007), 12400); timeSeries1.add(new Month(10, 2007), 12500); timeSeries1.add(new Month(11, 2007), 13600); timeSeries1.add(new Month(12, 2007), 12500); lineDataset8.addSeries(timeSeries1); JFreeChart jfreechart8 = ChartFactory.createTimeSeriesChart("访问量统计时间线", "月份", "访问量", lineDataset8, true, true, true); XYPlot plot8 = (XYPlot) jfreechart8.getPlot(); XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot8.getRenderer(); //设置网格背景颜色 plot8.setBackgroundPaint(Color.white); //设置网格竖线颜色 plot8.setDomainGridlinePaint(Color.pink); //设置网格横线颜色 plot8.setRangeGridlinePaint(Color.pink); //设置曲线图与xy轴的距离 plot8.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 10D)); //设置曲线是否显示数据点 xylineandshaperenderer.setBaseShapesVisible(true); //设置曲线显示各数据点的值 XYItemRenderer xyitem8 = plot8.getRenderer(); xyitem8.setBaseItemLabelsVisible(true); xyitem8.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT)); xyitem8.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator()); xyitem8.setBaseItemLabelFont(font); jfreechart8.getLegend().setItemFont(font);//决绝底部标题中午乱码 plot8.setRenderer(xyitem8); i++; String filePathImage8 = DateUtil.formatDate2String(new java.util.Date(), "yyyyMMddHHmmss")+i+ "_Indicator.gif"; String filePath8 = "businessAnalysis/" + filePathImage8; String path8=request.getSession().getServletContext().getRealPath("/") + filePath8; jfreechart8.getTitle().setFont(font); XYPlot xypt8= (XYPlot)jfreechart8.getPlot(); xypt8.getDomainAxis().setLabelFont(font); xypt8.getDomainAxis().setTickLabelFont(font); xypt8.getRangeAxis().setLabelFont(font); xypt8.getRangeAxis().setTickLabelFont(font); JfreeChartBuilder.createImage(request, response, path8, jfreechart8, 1.0f, 500, 300); list.add(filePath8); //-------------------------------------------- //访问量统计时间线 TimeSeries timeSeries = new TimeSeries("阿蜜果blog访问量统计", "",""); //时间曲线数据集合 TimeSeriesCollection lineDataset = new TimeSeriesCollection(); //构造数据集合 timeSeries.add(new Month(1, 2007), 11200); timeSeries.add(new Month(2, 2007), 9000); timeSeries.add(new Month(3, 2007), 6200); timeSeries.add(new Month(4, 2007), 8200); timeSeries.add(new Month(5, 2007), 8200); timeSeries.add(new Month(6, 2007), 12200); timeSeries.add(new Month(7, 2007), 13200); timeSeries.add(new Month(8, 2007), 8300); timeSeries.add(new Month(9, 2007), 12400); timeSeries.add(new Month(10, 2007), 12500); timeSeries.add(new Month(11, 2007), 13600); timeSeries.add(new Month(12, 2007), 12500); lineDataset.addSeries(timeSeries); JFreeChart jfreechart7 = ChartFactory.createTimeSeriesChart("访问量统计时间线", "月份", "访问量", lineDataset, true, true, true); //设置子标题 TextTitle subtitle = new TextTitle("2007年度", new Font("黑体", Font.BOLD, 12)); jfreechart7.addSubtitle(subtitle); //设置主标题 jfreechart7.setTitle(new TextTitle("阿蜜果blog访问量统计",font)); jfreechart7.setAntiAlias(true); jfreechart7.getLegend().setItemFont(font);//决绝底部标题中午乱码 i++; String filePathImage7 = DateUtil.formatDate2String(new java.util.Date(), "yyyyMMddHHmmss")+i+ "_Indicator.gif"; String filePath7 = "businessAnalysis/"+ filePathImage7; String path7=request.getSession().getServletContext().getRealPath("/") + filePath7; jfreechart7.getTitle().setFont(font); XYPlot xypt= (XYPlot)jfreechart7.getPlot(); xypt.getDomainAxis().setLabelFont(font); xypt.getDomainAxis().setTickLabelFont(font); xypt.getRangeAxis().setLabelFont(font); xypt.getRangeAxis().setTickLabelFont(font); JfreeChartBuilder.createImage(request, response, path7, jfreechart7, 1.0f, 500, 300); list.add(filePath7); if(11==1){ request.setAttribute("list", list); return mapping.findForward("jfree"); } //----------------- //设置数据集 DefaultPieDataset dataset6 = new DefaultPieDataset(); dataset6.setValue("初中高级程序员", 0.55); dataset6.setValue("项目经理", 0.1); dataset6.setValue("系统分析师", 0.1); dataset6.setValue("软件架构师", 0.1); dataset6.setValue("其他", 0.2); //通过工厂类生成JFreeChart对象 JFreeChart jfreechart6 = ChartFactory.createPieChart3D("IT行业职业分布图", dataset6, true, true, false); //获得3D的水晶饼图对象 PiePlot3D pieplot3d = (PiePlot3D) jfreechart6.getPlot(); //设置开始角度 pieplot3d.setStartAngle(150D); //设置方向为”顺时针方向“ pieplot3d.setDirection(Rotation.CLOCKWISE); //设置透明度,0.5F为半透明,1为不透明,0为全透明 pieplot3d.setForegroundAlpha(0.5F); pieplot3d.setNoDataMessage("无数据显示"); i++; String filePathImage6 = DateUtil.formatDate2String(new java.util.Date(), "yyyyMMddHHmmss")+i+ "_Indicator.gif"; String filePath6 = "businessAnalysis/" + filePathImage6; String path6=request.getSession().getServletContext().getRealPath("/") + filePath6; jfreechart6.getLegend().setItemFont(font);//决绝底部标题中午乱码 jfreechart6.getTitle().setFont(font);//决绝顶部标题中午乱码 PiePlot pp = (PiePlot)jfreechart6.getPlot(); pp.setLabelFont(font); JfreeChartBuilder.createImage(request, response, path6, jfreechart6, 1.0f, 500, 300); list.add(filePath6); if(11==1){ request.setAttribute("list", list); return mapping.findForward("jfree"); } //--------------- DefaultPieDataset dataset5 = new DefaultPieDataset(); dataset5.setValue("初中高级程序员", 0.55); dataset5.setValue("项目经理", 0.1); dataset5.setValue("系统分析师", 0.1); dataset5.setValue("软件架构师", 0.1); dataset5.setValue("其他", 0.2); //通过工厂类生成JFreeChart对象 JFreeChart chart5 = ChartFactory.createPieChart3D("IT行业职业分布图", dataset5, true, false, false); PiePlot pieplot5 = (PiePlot) chart5.getPlot(); pieplot5.setLabelFont(font); //没有数据的时候显示的内容 pieplot5.setNoDataMessage("无数据显示"); pieplot5.setCircular(false); i++; String filePathImage5 = DateUtil.formatDate2String(new java.util.Date(), "yyyyMMddHHmmss")+i+ "_Indicator.gif"; String afilePath5 = "businessAnalysis/"+ filePathImage5; String path5=request.getSession().getServletContext().getRealPath("/") + afilePath5; chart5.getTitle().setFont(font); chart5.getLegend().setItemFont(font);//决绝底部标题中午乱码 JfreeChartBuilder.createImage(request, response, path5, chart5, 1.0f, 500, 300); list.add(afilePath5); //----------- DefaultPieDataset dataset4 = new DefaultPieDataset(); dataset4.setValue("初中高级程序员", 0.55); dataset4.setValue("项目经理", 0.1); dataset4.setValue("系统分析师", 0.1); dataset4.setValue("软件架构师", 0.05); dataset4.setValue("其他", 0.2); //通过工厂类生成JFreeChart对象 JFreeChart jfreechart4 = ChartFactory.createPieChart3D("IT行业职业分布图", dataset4, true, false, false); PiePlot pieplot = (PiePlot) jfreechart4.getPlot(); pieplot.setLabelFont(font); //没有数据的时候显示的内容 pieplot.setNoDataMessage("无数据显示"); pieplot.setCircular(false); pieplot.setLabelGap(0.02D); i++; String filePathImage = DateUtil.formatDate2String(new java.util.Date(), "yyyyMMddHHmmss")+i+ "_Indicator.gif"; String afilePath4 = "businessAnalysis/"+ filePathImage; String path1=request.getSession().getServletContext().getRealPath("/") + afilePath4; jfreechart4.getTitle().setFont(font); jfreechart4.getLegend().setItemFont(font);//决绝底部标题中午乱码 JfreeChartBuilder.createImage(request, response, path1, jfreechart4, 1.0f, 500, 300); list.add(afilePath4); if(11==1){ request.setAttribute("list", list); return mapping.findForward("jfree"); } // --------------------- double[][] data3 = new double[][] {{1310, 1220, 1110, 1000}, {720, 700, 680, 640}, {1130, 1020, 980, 800}, {440, 400, 360, 300}}; String[] rowKeys3 = {"猪肉", "牛肉","鸡肉", "鱼肉"}; String[] columnKeys3 = {"广州", "深圳", "东莞", "佛山"}; CategoryDataset dataset3 = DatasetUtilities.createCategoryDataset(rowKeys3, columnKeys3, data3); JFreeChart jfreechart3 = ChartFactory.createBarChart3D("肉类销量统计图", "肉类", "销量", dataset3, PlotOrientation.VERTICAL, true, true, false); CategoryPlot plot = jfreechart3.getCategoryPlot(); //设置网格背景颜色 plot.setBackgroundPaint(Color.white); //设置网格竖线颜色 plot.setDomainGridlinePaint(Color.pink); //设置网格横线颜色 plot.setRangeGridlinePaint(Color.pink); //显示每个柱的数值,并修改该数值的字体属性 BarRenderer3D renderer = new BarRenderer3D(); renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); renderer.setBaseItemLabelsVisible(true); //默认的数字显示在柱子中,通过如下两句可调整数字的显示 //注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题 renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT)); renderer.setItemLabelAnchorOffset(10D); //设置每个地区所包含的平行柱的之间距离 //renderer.setItemMargin(0.3); plot.setRenderer(renderer); //设置地区、销量的显示位置 //将下方的“肉类”放到上方 plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT); //将默认放在左边的“销量”放到右方 plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT); jfreechart3.getLegend().setItemFont(font);//决绝底部标题中午乱码 String filePath3 = createReportImg(request, response, jfreechart3, i++); list.add(filePath3); // --------------------- double[][] data2 = new double[][] {{1310, 1220, 1110, 1000}, {720, 700, 680, 640}, {1130, 1020, 980, 800}, {440, 400, 360, 300}}; String[] rowKeys2 = {"猪肉", "牛肉","鸡肉", "鱼肉"}; String[] columnKeys2 = {"广州", "深圳", "东莞", "佛山"}; CategoryDataset dataset2 = DatasetUtilities.createCategoryDataset(rowKeys2, columnKeys2, data2); JFreeChart jfreechart2 = ChartFactory.createBarChart3D("广州肉类销量统计图", "肉类", "销量", dataset2, PlotOrientation.VERTICAL, true, false, false); jfreechart2.getLegend().setItemFont(font);//决绝底部标题中午乱码 String filePath2 = createReportImg(request, response, jfreechart2, i++); list.add(filePath2); DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1210, "广州", "猪肉"); dataset.addValue(20, "广州", "牛肉"); dataset.addValue(130, "广州", "鸡肉"); dataset.addValue(340, "广州", "鱼肉"); JFreeChart jfreechart = ChartFactory.createBarChart3D("肉类销量统计图", "肉类","销量", dataset,PlotOrientation.VERTICAL, false, false, false); String filePath = createReportImg(request, response, jfreechart, i++); list.add(filePath); // --------------------- double[][] data = new double[][] {{1310}, {720}, {1130}, {440}}; String[] rowKeys = {"猪肉", "牛肉","鸡肉", "鱼肉"}; String[] columnKeys = {""}; CategoryDataset dataset1 = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data); JFreeChart jfreechart1 = ChartFactory.createBarChart3D("广州肉类销量统计图", "肉类", "销量", dataset1, PlotOrientation.VERTICAL, true, false, false); jfreechart1.getLegend().setItemFont(font);//决绝底部标题中午乱码 String filePath1 = createReportImg(request, response, jfreechart1, i++); list.add(filePath1); request.setAttribute("list", list); return mapping.findForward("jfree"); } private String createReportImg(HttpServletRequest request, HttpServletResponse response, JFreeChart jfreechart,int i) { String filePathImage = DateUtil.formatDate2String(new java.util.Date(), "yyyyMMddHHmmss")+i+ "_Indicator.gif"; String filePath = "businessAnalysis/"+ filePathImage; String path=request.getSession().getServletContext().getRealPath("/") + filePath; Font font = new Font("sans-serif", Font.PLAIN, 11); jfreechart.getTitle().setFont(font); CategoryPlot categoryPort = jfreechart.getCategoryPlot(); CategoryAxis catagoryAxis = categoryPort.getDomainAxis(); catagoryAxis.setTickLabelFont(font); catagoryAxis.setLabelFont(font); ValueAxis valueAxis = categoryPort.getRangeAxis(); valueAxis.setTickLabelFont(font); valueAxis.setLabelFont(font); JfreeChartBuilder.createImage(request, response, path, jfreechart, 1.0f, 700, 300); return filePath; }
2
3
4