<%@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>