/** *//** *//** *//** * 生成时序图 */public String generateXYChar(JFreeCharPOJO argJfreeCharPojo, HttpSession argSession, PrintWriter argPrintWriter) ......{ /** *//** *//** *//** * 保存图片的路径 */ String fileName = null; SynthesisDataJFreeCharPOJO syData = (SynthesisDataJFreeCharPOJO) argJfreeCharPojo; List synthesisData = syData.getData(); //生成图片所需的数据 /** *//** *//** *//** * 创建一组XYSeries数据 */ Map seriesMap = new HashMap(); for(Iterator ite = synthesisData.iterator(); ite.hasNext();) ......{ SynthesisJFreeCharPOJO synVlaue = (SynthesisJFreeCharPOJO) ite.next(); String type_name = synVlaue.getType_name(); if(seriesMap.containsKey(type_name)) ......{ XYSeries xySeries = (XYSeries) seriesMap.get(type_name); xySeries.add(synVlaue.getTime().getTime(), synVlaue.getBalance()); } else ......{ XYSeries xySeries = new XYSeries(type_name); seriesMap.put(type_name, xySeries); xySeries.add(synVlaue.getTime().getTime(), synVlaue.getBalance()); } } /** *//** *//** *//** * 将一组XYSeries添加到XYSeriesCollection集中 */ XYSeriesCollection xyCollection = new XYSeriesCollection(); for(Iterator ite = seriesMap.keySet().iterator(); ite.hasNext();) ......{ xyCollection.addSeries((XYSeries) seriesMap.get(ite.next())); } /** *//** *//** *//** * 设置数据图片的格式,以及URL */ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",Locale.CHINA); StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator( StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, sdf, NumberFormat.getInstance()); /** *//** *//** *//** * 创建图片对象 */ DateAxis timeAxis = new DateAxis("时间增长幅度"); timeAxis.setDateFormatOverride(new java.text.SimpleDateFormat("YYYY-MM-DD")); //设置日期显示的格式 NumberAxis valueAxis = new NumberAxis("数据增长幅度"); valueAxis.setNumberFormatOverride(new DecimalFormat("0.00")); //设置数据显示的格式 valueAxis.setAutoRangeIncludesZero(false); StandardXYItemRenderer renderer = new StandardXYItemRenderer( org.jfree.chart.renderer.xy.StandardXYItemRenderer.LINES + StandardXYItemRenderer.SHAPES, ttg, null); //null,表示图片上面不需要URL地址 renderer.setShapesFilled(true); XYPlot plot = new XYPlot(xyCollection, timeAxis, valueAxis, renderer); //创建一个曲线图形的对象 xyCollection //所有数据 timeAxis //日期显示的格式 valueAxis //数据显示的格式 renderer //设置图片上一些点的显示样式 JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot, true); //true, 为true,将显示每种数据在图片上的颜色 chart.setBackgroundPaint(java.awt.Color.white); /** *//** *//** *//** * 将图片写到文件中 */ ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection()); try ......{ fileName = ServletUtilities.saveChartAsPNG(chart, 600, 400, info, argSession); chart // ChartUtilities.writeImageMap(argPrintWriter, fileName, info, false); argPrintWriter.flush(); } catch (IOException e) ......{ e.printStackTrace(); } return fileName;}