Posted in PHP onNovember 03, 2013
如何在PHP上显示JFreechart?可能大部分都遇到这种情况,在JSP上的servlet能完全的显示出JFreechart画的统计图,但是和其他语言混合运用就不能显示了
我现在也遇到这个问题,想了半个小时终于弄明白了,实现的过程还是很简单的。(个人经验总结而已)
解决的思路:
1.先将JFreechart生成的图片保存在web 服务器上。
2.然后在JSP上用<img>标签显示
3.通过JS将JSP导入PHP页面
这样就实现了。
部分getColumnChart.jsp源码:
<% String startTime = request.getParameter("startTime"); String endTime = request.getParameter("endTime"); String filter = request.getParameter("filter"); Charts charts = new Charts(); String start = startTime == null ? "2013-05-12" : startTime; String end = endTime == null ? "2013-11-01" : endTime; String filters = filter == null ? "eventtype" : filter; JFreeChart chart = charts .getPieChart(startTime, endTime, filter);//开始时间、结束时间、filter String filename = ServletUtilities.saveChartAsJPEG(chart, 800, 400, null, session); FileOutputStream fos_jpg = null; File file = new File(application.getRealPath("")+"/charts"); String path =request.getContextPath()+"/charts/NoData.jpg"; try { file.mkdirs(); fos_jpg = new FileOutputStream(file.getPath()+"/"+filename); ChartUtilities.writeChartAsJPEG(fos_jpg, 1.0f, chart, 800, 400, null); } catch (Exception e) { } finally { try { fos_jpg.close(); } catch (Exception e) { } } path = request.getContextPath()+"/charts/"+filename; %> <div align="center"> <img src="<%=path %>" name="图片" width=800 height=400 border=0> </div>
实现导入JSP的JS源码
extjs.chart.chart3D = function(nodeid,id){ var panel = new Ext.Panel({ border:false, fitToFrame: true,//很简单的就一个Html标签 html: '<iframe id="frameHelp" src="/getColumnChart.jsp" frameborder="0" width="100%" height="520" ></iframe>' }); return panel; }
在PHP上显示JFreechart画的统计图方法
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@