package com.xidian.servlet;
import java.awt.Color;
import java.awt.Font;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
/**
 * 柱状分布统计图
 * @说明 
 * @author fei.teng
 * @version 1.0
 * @since
 */
@SuppressWarnings("serial")
public class ParagraphsServlet extends HttpServlet {
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		DefaultCategoryDataset dataTime = new DefaultCategoryDataset();
		// 这是一组数据
		dataTime.addValue(52, "0-6", "2010-1-1");
		dataTime.addValue(86, "6-12", "2010-1-1");
		dataTime.addValue(126, "12-18", "2010-1-1");
		dataTime.addValue(42, "18-24", "2010-1-1");
		// 这是一组数据
		dataTime.addValue(452, "0-6", "2010-1-2");
		dataTime.addValue(96, "6-12", "2010-1-2");
		dataTime.addValue(254, "12-18", "2010-1-2");
		dataTime.addValue(126, "18-24", "2010-1-2");
		// 这是一组数据
		dataTime.addValue(256, "0-6", "2010-1-3");
		dataTime.addValue(86, "6-12", "2010-1-3");
		dataTime.addValue(365, "12-18", "2010-1-3");
		dataTime.addValue(24, "18-24", "2010-1-3");
		try {
			DefaultCategoryDataset data = dataTime;
			// 使用ChartFactory创建3D柱状图,不想使用3D,直接使用createBarChart
			JFreeChart chart = ChartFactory.createBarChart3D(
					"网站时间段访问量统计", 
					"时间", 
					"访问量", 
					data,
					PlotOrientation.VERTICAL, 
					true, 
					false, 
					false
			);
			// 设置整个图片的背景色
			chart.setBackgroundPaint(Color.PINK);
			// 设置图片有边框
			chart.setBorderVisible(true);
			Font kfont = new Font("宋体", Font.PLAIN, 12);    // 底部
			Font titleFont = new Font("宋体", Font.BOLD, 25); // 图片标题
			// 图片标题
			chart.setTitle(new TextTitle(chart.getTitle().getText(), titleFont));
			// 底部
			chart.getLegend().setItemFont(kfont);
			// 得到坐标设置字体解决乱码
			CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();
			categoryplot.setDomainGridlinesVisible(true);
			categoryplot.setRangeCrosshairVisible(true);
			categoryplot.setRangeCrosshairPaint(Color.blue);
			NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
			numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
			BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer();
			barrenderer.setBaseItemLabelFont(new Font("宋体", Font.PLAIN, 12));
			barrenderer.setSeriesItemLabelFont(1, new Font("宋体", Font.PLAIN, 12));
			CategoryAxis domainAxis = categoryplot.getDomainAxis();			
			/*------设置X轴坐标上的文字-----------*/
			domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
			/*------设置X轴的标题文字------------*/
			domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
			/*------设置Y轴坐标上的文字-----------*/
			numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
			/*------设置Y轴的标题文字------------*/
			numberaxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
			/*------这句代码解决了底部汉字乱码的问题-----------*/
			chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));	
			ChartUtilities.writeChartAsJPEG(response.getOutputStream(), 1.0f,
					chart, 500, 300, null);
		} catch (Exception es) {
			es.printStackTrace();
		}
	}
}
最近下载更多
嘉琪拉  LV2 2021年8月31日
wlxr1410  LV1 2021年6月7日
HUANG888  LV6 2021年2月18日
ITfans  LV19 2021年1月9日
15687890811  LV12 2020年7月1日
hxx88781143  LV8 2020年5月19日
zjjhzjb  LV14 2019年12月7日
wanglong_wang  LV13 2019年8月1日
Luis虎子  LV16 2019年6月26日
yp0416160222  LV2 2019年6月9日
最近浏览更多
cz8857216  LV4 8月7日
fesfefe  LV13 2023年10月24日
getset  LV8 2022年12月6日
Tg171017  LV12 2022年11月30日
abc562311934  LV4 2022年10月8日
东北人  LV12 2022年9月20日
wusiyin  LV14 2022年9月15日
 LV7 2022年7月5日
heifenglei  LV7 2022年4月7日
yanliang2377912054 2021年12月22日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友