jfreechart 曲线图

来源:互联网 发布:矩阵潜袭 pc 编辑:程序博客网 时间:2024/04/29 13:34

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


0 0
原创粉丝点击