在PHP上显示JFreechart画的统计图方法

前端技术 2023/09/05 PHP
如何在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;
}

本文地址:https://www.stayed.cn/item/14480

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。