jsp 柱状图

 
<%@page contentType="text/html;charset=gb2312" import="com.ay.view.plan.*,java.util.*,com.ay.util.*" errorPage="../errorpage.jsp"%>
<%@ page import="java.awt.Font"%>
<%@ page import="org.jfree.chart.axis.CategoryAxis"%>
<%@ page import="org.jfree.chart.axis.ValueAxis"%>
<%@ page import="org.jfree.chart.ChartFactory"%>
<%@ page import="org.jfree.chart.JFreeChart"%>
<%@ page import="org.jfree.chart.labels.ItemLabelPosition"%>
<%@ page import="org.jfree.chart.labels.ItemLabelAnchor"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>
<%@ page import="org.jfree.chart.plot.CategoryPlot"%>
<%@ page import="org.jfree.chart.renderer.category.BarRenderer3D"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import="org.jfree.ui.TextAnchor"%>
<%@ page import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"%>
<%@taglib uri="PlanOrder"  prefix="plan" %>
<%@taglib uri="Login"  prefix="login" %> 
<login:Login> </login:Login> 
<%@taglib uri="UITools"  prefix="uitools" %>
<%@include file="../top.jsp"%> 
<html>
<title>统计柱状图</title>
<body>
<%
	String title=new String(request.getParameter("title").getBytes("iso8859-1"),"gb2312");
	String para1=request.getParameter("para1");
	String para2=request.getParameter("para2");
	String xa=new String(request.getParameter("xa").getBytes("iso8859-1"),"gb2312");
	String ya=new String(request.getParameter("ya").getBytes("iso8859-1"),"gb2312");
	System.out.println("xa:"+xa+";ya:"+ya);
	String formname=request.getParameter("formname");
	DefaultCategoryDataset data = new DefaultCategoryDataset(); 
	DBAccess dba=new DBAccess();

	try{
		String sql2="select "+para1+" as v1,"+para2+" as v2,count(*) as sumcount from "+formname+" where "+ para1 +" is not null and "+ para2 +" is not null group by "+para1+","+para2;
		System.out.println("sql2======="+sql2);
		List list2= dba.queryToHashtable(sql2);
		if(list2!=null&&list2.size()>0){
			for(int i= 0; i<list2.size();i++){
				Hashtable table=(Hashtable)list2.get(i);
				String v1=(String)table.get("v1");
				String v2=(String)table.get("v2");
				String sumcount=(String)table.get("sumcount");
				int sum=Integer.parseInt(sumcount);
				data.addValue(sum,v1,v2);
			}
		}
	}catch(Exception e){
	}

	JFreeChart chart = ChartFactory.createBarChart3D(title+"统计图",xa,ya,data,PlotOrientation.VERTICAL,true,false,false);
	CategoryPlot plot = chart.getCategoryPlot();
	//无数据时文字
	plot.setNoDataMessage("无统计数据!!!");
	//标题字体,解决乱码
	chart.getTitle().setFont(new Font("宋体", Font.BOLD, 24));
	//设置透明度
	plot.setForegroundAlpha(0.7F);

	//X轴字体,解决乱码
	CategoryAxis domainAxis=plot.getDomainAxis();
	domainAxis.setLabelFont(new Font("宋体",Font.BOLD,16));
	domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,13));
	//设置距离图片左端距离
	//domainAxis.setLowerMargin(0.1);
	//设置距离图片右端距离
	//domainAxis.setUpperMargin(0.1);
	domainAxis.setCategoryMargin(0.4);

	//Y轴字体,解决乱码
	ValueAxis rangeAxis=plot.getRangeAxis();
	rangeAxis.setLabelFont(new Font("宋体",Font.BOLD,16));
	//设置最高的一个柱与图片顶端的距离
	rangeAxis.setUpperMargin(0.15);
	//图例字体,解决乱码
	chart.getLegend().setItemFont(new Font("宋体",Font.BOLD,13));

	BarRenderer3D renderer = new BarRenderer3D();
	//显示数字
	renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
	renderer.setItemLabelsVisible(true);
	renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
	renderer.setItemLabelAnchorOffset(10D);
	//设置间隔
	renderer.setItemMargin(-1);
	plot.setRenderer(renderer);

	//650是图片长度,300是图片高度 
	String filename = ServletUtilities.saveChartAsPNG(chart, 750, 350, null, session); 
	String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename; 
	System.out.println("graphURL:  "+graphURL);
%>
<CENTER><img src="<%=graphURL%>" width="750" height="350" border="0" usemap="#<%=filename%>"/></CENTER>
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP页面上绘制柱状图,可以使用JFreeChart库。以下是绘制柱状图的步骤: 1.在JSP页面中引入JFreeChart库的jar包。 2.在JSP页面中创建一个数据集对象,用于存储要绘制的数据。 3.创建一个图表对象,并设置图表的标题和x轴、y轴的标签。 4.创建一个柱状图绘制对象,并将数据集对象和图表对象传递给它。 5.设置柱状图的样式,例如颜色、边框等。 6.将柱状图绘制对象添加到图表对象中。 7.使用ChartUtilities.writeChartAsPNG()方法将图表对象转换为PNG格式的图片,并将其输出到JSP页面中。 下面是一个示例代码,用于在JSP页面上绘制柱状图: ```java <%@ page import="org.jfree.chart.ChartFactory"%> <%@ page import="org.jfree.chart.ChartUtilities"%> <%@ page import="org.jfree.chart.JFreeChart"%> <%@ page import="org.jfree.chart.plot.PlotOrientation"%> <%@ page import="org.jfree.data.category.DefaultCategoryDataset"%> <% // 创建数据集对象 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1.0, "Series 1", "Category 1"); dataset.addValue(2.0, "Series 1", "Category 2"); dataset.addValue(3.0, "Series 1", "Category 3"); dataset.addValue(4.0, "Series 1", "Category 4"); dataset.addValue(5.0, "Series 1", "Category 5"); // 创建图表对象 JFreeChart chart = ChartFactory.createBarChart( "Chart Title", // 图表标题 "Category", // x轴标签 "Value", // y轴标签 dataset, // 数据集对象 PlotOrientation.VERTICAL, // 图表方向 true, // 是否显示图例 true, // 是否生成工具提示 false // 是否生成URL链接 ); // 设置柱状图的样式 chart.getCategoryPlot().getRenderer().setSeriesPaint(0, Color.blue); // 将图表对象转换为PNG格式的图片,并输出到JSP页面中 ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, 500, 300); %> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值