JFreeChart用法
来源:互联网 发布:四川广电电视网络套餐 编辑:程序博客网 时间:2024/04/30 08:19
//折线图@RequestMapping(value = "/rankTable") public void rankTable(HttpServletRequest request,HttpServletResponse response,String taskName){ PrintWriter out =null; List<Map<String, Object>> ranks = siteUrlService.getAllRank(); // 使用普通数据集 try { out =response.getWriter(); //获取数据对象 DefaultCategoryDataset cd = new DefaultCategoryDataset(); for(int i=0;i<ranks.size();i++){ Map<String, Object> rk = ranks.get(i); //System.out.println(rk.get("create_date")+" \t"+rk.get("rank")); cd.addValue(Integer.valueOf(rk.get("rank").toString()), "排名榜", rk.get("create_date").toString()); } //创建图形对象 JFreeChart jfc = ChartFactory.createLineChart(taskName, null, "排行量", cd, PlotOrientation.VERTICAL, true, false, false); //设置图例的字体显示,防止中文乱码 jfc.getLegend().setItemFont(new Font("黑体", 0, 10)); //设置标题并且设置其字体,防止中文乱码 TextTitle textTitle = new TextTitle(taskName); textTitle.setFont(new Font("宋体", Font.BOLD, 12)); jfc.setTitle(textTitle); //设置图表子标题 jfc.addSubtitle(new TextTitle(" 按天份")); //创建一个标题对象,用于放置产生图形日前 TextTitle tt = new TextTitle("日期:"+DateUtil.Sysdate()+" "); //设置该标题的字体,防止中文乱码 tt.setFont(new Font("黑体", 0, 10)); //设置该标题的位置为产生的图形下面 tt.setPosition(RectangleEdge.BOTTOM); //设置图片为右对齐 tt.setHorizontalAlignment(HorizontalAlignment.RIGHT); //将该标题添加到图表 jfc.addSubtitle(tt); //设置整个图表的背景色为绿色 jfc.setBackgroundPaint(Color.green); //获取图表区域对象 CategoryPlot cp = jfc.getCategoryPlot(); //设置图表区域背景色 cp.setBackgroundPaint(Color.white); //设置边线不可见 cp.setRangeGridlinesVisible(false); //设置横轴的字体,防止中文乱码 cp.getDomainAxis().setTickLabelFont(new Font("黑体", 0, 10)); //设置竖轴的字体,防止中文乱码 cp.getRangeAxis().setLabelFont(new Font("黑体", 0, 10)); //获取显示线条的对象 LineAndShapeRenderer lasp = (LineAndShapeRenderer)cp.getRenderer(); //设置拐点是否可见/是否显示拐点 lasp.setBaseShapesVisible(true); //设置拐点不同用不同的形状 lasp.setDrawOutlines(true); //设置线条是否被显示填充颜色 lasp.setUseFillPaint(true); //设置拐点颜色 lasp.setBaseFillPaint(Color.yellow); // 设置折线加粗 lasp.setSeriesStroke(0, new BasicStroke(3F)); lasp.setSeriesOutlineStroke(0, new BasicStroke(2.0F)); // 设置折线拐点 lasp.setSeriesShape(0,new java.awt.geom.Ellipse2D.Double(-5D, -5D, 10D, 10D)); // 将图表已数据流的方式返回给客户端// ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfc,500, 270); /* 生成文件 */ File file =new File(request.getSession().getServletContext().getRealPath("/uploads")+ "/"+"allsum.png"); if(file.exists()) file.delete(); OutputStream os = new FileOutputStream(request.getSession().getServletContext().getRealPath("/uploads")+ "/"+"allsum.png"); ChartUtilities.writeChartAsJPEG(os, jfc, 1024, 300); os.flush(); os.close(); out.write("true"); } catch (Exception e) { out.write("false"); } finally{ if(out!=null){ out.close(); } } }
//柱形图
@RequestMapping(value = "/rankTable")public void rankTable(String taskName,Integer taskId,HttpServletRequest request,HttpServletResponse response){PrintWriter out =null;List<Map<String, Object>> ranks = siteUrlService.getAllRank(taskId);// 使用普通数据集try {out =response.getWriter();DefaultCategoryDataset chartDate = new DefaultCategoryDataset();for(int i=0;i<ranks.size();i++){Map<String, Object> rk = ranks.get(i);//System.out.println(rk.get("create_date")+" \t"+rk.get("rank"));chartDate.setValue(Integer.valueOf(rk.get("rank").toString()), "排名榜", rk.get("create_date").toString());}DefaultCategoryDataset data = chartDate;JFreeChart chart = ChartFactory.createBarChart3D("任务排行榜", // 图表标题"月份", // 目录轴的显示标签taskName, // 数值轴的显示标签data, // 数据集PlotOrientation.VERTICAL, // 图表方向,此处为垂直方向true, // 是否显示图例true, // 是否生成工具false // 是否生成URL链接);Font kfont = new Font("宋体", Font.PLAIN, 12); // 底部Font titleFont = new Font("宋体", Font.BOLD, 25); // 图片标题// 图片标题chart.setTitle(new TextTitle(chart.getTitle().getText(), titleFont));// 底部chart.getLegend().setItemFont(kfont);//** 得到坐标设置字体解决乱码CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();/* 设置 X轴坐标上的文字 X轴的标题文字 */CategoryAxis domainAxis = categoryplot.getDomainAxis();domainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 11)); domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); /* 设置 Y轴坐标上的文字 Y轴的标题文字 */ValueAxis rangeAxis = categoryplot.getRangeAxis(); rangeAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 12)); rangeAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); /* 设置柱状图上面显示真实数据 */BarRenderer3D renderer = (BarRenderer3D) categoryplot.getRenderer();ItemLabelPosition itemLabelPositionFallback = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER,TextAnchor.TOP_CENTER, 0D);renderer.setPositiveItemLabelPositionFallback(itemLabelPositionFallback);renderer.setNegativeItemLabelPositionFallback(itemLabelPositionFallback);renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));renderer.setItemLabelsVisible(true);categoryplot.setRenderer(renderer);/* 生成文件 */OutputStream os = new FileOutputStream(request.getSession().getServletContext().getRealPath("/uploads")+ "/"+"allsum.png"); ChartUtilities.writeChartAsJPEG(os, chart, 450, 230); System.out.println(request.getSession().getServletContext().getRealPath("/uploads")+ "/"+"allsum.png"); os.close(); out.write("true");} catch (Exception e) {//e.printStackTrace();out.write("false");} finally{ if(out!=null){ out.close(); } }}
- JFreeChart用法
- JFreeChart用法
- JFreeChart用法
- JFreeChart 的用法
- Jfreechart基本用法示例
- JFreeChart 用法与示例
- JFreeChart的用法简介
- JFreeChart DateAxis用法
- JFreeChart DateAxis用法
- JFreeChart 用法与示例
- JFreechart 的一些用法 例子
- JFreeChart基本的用法实例
- JfreeChart用法介绍转文-待总结
- JFreeChart基本的用法实例(一)
- JFreeChart简单介绍及用法(入门)
- JFreeChart
- JFreeChart
- JFreeChart
- SITTC教你云计算基础入门(七)
- Filter 过滤器
- Documentation\block\switching-sched.txt
- Linux shell编程 8 ---- 退出+测试
- 关注时间维度
- JFreeChart用法
- flex 组件显示手型 光标
- svn回滚操作(撤销修改)
- ios 绘图
- 指针 数组
- Differences between Datasource and XADatasource
- solr data-config.xml配置文件的见解mysql数据源
- qt5 deploy 部署 双击 myProgram.exe时 提示找不着 ...windows 不能运行
- 让我们摸清楚多表连接的原理