jfreechart 曲线图

<%@page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@page import="org.jfree.ui.TextAnchor"%>
<%@page import="org.jfree.chart.labels.ItemLabelAnchor"%>
<%@page import="org.jfree.chart.labels.StandardCategoryItemLabelGenerator"%>
<%@page import="org.jfree.chart.labels.ItemLabelPosition"%>
<%@page import="org.jfree.chart.axis.CategoryAxis"%>
<%@page import="org.jfree.chart.axis.NumberAxis"%>
<%@page import="java.awt.Font"%>
<%@page import="org.jfree.chart.ChartFactory"%>
<%@page import="org.jfree.chart.title.TextTitle"%>
<%@page import="org.jfree.chart.JFreeChart"%>
<%@page import="org.jfree.data.Range"%>
<%@page import="org.jfree.chart.renderer.category.CategoryItemRenderer"%>
<%@page import="org.jfree.chart.renderer.category.LineAndShapeRenderer"%>
<%@page import="java.awt.Color"%>
<%@page import="org.jfree.chart.plot.CategoryPlot"%>
<%@page import="org.jfree.chart.plot.PlotOrientation"%>
<%@page import="org.jfree.data.category.DefaultCategoryDataset"%>
<%@page import="org.jfree.data.category.CategoryDataset"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		int j = 0;
			DefaultCategoryDataset dataset = new DefaultCategoryDataset();
			dataset.addValue(20d, "一年级", j++ + "");
			dataset.addValue(27d, "一年级", j++ + "");
			dataset.addValue(21d, "一年级", j++ + "");
			dataset.addValue(23d, "一年级", j++ + "");
			dataset.addValue(25d, "一年级", j++ + "");
			dataset.addValue(19d, "一年级", j++ + "");
			dataset.addValue(20d, "一年级", j++ + "");
			
			j=0;
			dataset.addValue(23d, "二年级", j++ + "");
			dataset.addValue(22d, "二年级", j++ + "");
			dataset.addValue(25d, "二年级", j++ + "");
			dataset.addValue(20d, "二年级", j++ + "");
			dataset.addValue(22d, "二年级", j++ + "");
			dataset.addValue(30d, "二年级", j++ + "");
			dataset.addValue(21d, "二年级", j++ + "");

			JFreeChart chart = ChartFactory.createLineChart("test", "近七年情况", "人数",
			dataset, PlotOrientation.VERTICAL, true, true, true);
			chart.setBackgroundPaint(Color.WHITE);//整个图表背景色

			//设置主标题
			chart.setTitle(new TextTitle("学生人数", new Font("隶书",
			Font.ITALIC, 15)));
			//设置子标题

			TextTitle subtitle = new TextTitle("近七年学生人数情况变化图", new Font("黑体",
			Font.BOLD, 12));
			chart.addSubtitle(subtitle);
			chart.setAntiAlias(true);

			CategoryPlot categoryplot = (CategoryPlot)chart.getPlot();  
	        categoryplot.setBackgroundPaint(Color.lightGray);  
	        categoryplot.setRangeGridlinePaint(Color.white);  
	        categoryplot.setBackgroundPaint(Color.BLACK);//背景色
	        
	        //取Y轴  
	        NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();  
	        numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());  
	        //是否显示零点  
	        numberaxis.setAutoRangeIncludesZero(false);  
	        numberaxis.setAutoTickUnitSelection(false);  
	        
	        numberaxis.setDefaultAutoRange(new Range(12d,55d));

	      //取x轴  
	        CategoryAxis domainAxis = (CategoryAxis)categoryplot.getDomainAxis();  
	        //解决x轴坐标上中文乱码  
	        domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));  
	        //解决x轴标题中文乱码  
	        domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 14));  
	        //用于显示X轴刻度  
	        domainAxis.setTickMarksVisible(true);  
	        //数据点  
	        LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)categoryplot.getRenderer();  
	        //series 点(即数据点)可见  
	        lineandshaperenderer.setBaseShapesVisible(true);  
	        //显示数据点的数据  
	        lineandshaperenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());   
	        //显示折线图点上的数据  
	        lineandshaperenderer.setBaseItemLabelsVisible(true);  

			//设置曲线显示各数据点的值
			CategoryItemRenderer categoryItemRenderer = categoryplot.getRenderer();
			categoryItemRenderer.setBaseItemLabelsVisible(true);
			categoryItemRenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
			ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
			categoryItemRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
			categoryItemRenderer.setBaseItemLabelFont(new Font("Dialog", 1, 12));
			//categoryItemRenderer.setBaseShape(true);

			categoryplot.setRenderer(categoryItemRenderer);

			/*------设置X轴坐标上的文字-----------*/
			domainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));
			/*------设置X轴的标题文字------------*/
			domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
			/*------设置Y轴坐标上的文字-----------*/
			numberaxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 15));
			/*------设置Y轴的标题文字------------*/
			numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 15));
			/*-------底部乱码------------*/
			chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));

			String filename = ServletUtilities.saveChartAsPNG(chart, 500, 360,
			null, session);
			String graphURL = request.getContextPath()
			+ "/DisplayChart?filename=" + filename;
	%>

	<img src="<%=graphURL%>" width=500 height=360 border=0>
</body>
</html>

还要在Web.xml配置一下servlet

	<servlet>
		<servlet-name>DisplayChart</servlet-name>
		<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>DisplayChart</servlet-name>
		<url-pattern>/DisplayChart</url-pattern>
	</servlet-mapping>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值