1. 下载jfreechart-1.0.9.zip 包,解压将下面的.jar 文件放入自己工程的lib下.

2. 在web.xml 文件中添加一个servlet,如下所示:

DisplayChart

org.jfree.chart.servlet.DisplayChart

DisplayChart

/servlet/DisplayChart

3. 编写java 类package com.cchc.thfnt.delClient;

import java.awt.Color;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.plot.XYPlot;

import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;

import org.jfree.chart.servlet.ServletUtilities;

import org.jfree.data.time.Day;

import org.jfree.data.time.Hour;

import org.jfree.data.time.Minute;

import org.jfree.data.time.TimeSeries;

import org.jfree.data.time.TimeSeriesCollection;

import org.jfree.data.xy.XYDataset;

import org.jfree.ui.RectangleInsets;

import com.cchc.common.util.DateFormat;

public class WebChart {

private String stringdate="";

public WebChart(String time){

if("".equals(time)||time==null){

Date date=new Date(System.currentTimeMillis());

stringdate=DateFormat.shortDate(date);

}else{

stringdate=time;

}

}

public String getFolddown(HttpServletRequest request, HttpSession session) {

// 设置曲线,

TimeSeries timeseries1 = new TimeSeries("usl", Minute.class);

List list=new ArrayList();

list.add(stringdate+" 08:00");

list.add(stringdate+" 08:15");

list.add(stringdate+" 08:30");

list.add(stringdate+" 08:45");

list.add(stringdate+" 09:00");

list.add(stringdate+" 09:15");

list.add(stringdate+" 09:30");

list.add(stringdate+" 09:45");

list.add(stringdate+" 10:00");

list.add(stringdate+" 10:15");

list.add(stringdate+" 10:30");

list.add(stringdate+" 10:45");

list.add(stringdate+" 11:00");

list.add(stringdate+" 11:15");

list.add(stringdate+" 11:30");

list.add(stringdate+" 11:45");

list.add(stringdate+" 12:00");

list.add(stringdate+" 12:15");

list.add(stringdate+" 12:30");

list.add(stringdate+" 12:45");

list.add(stringdate+" 13:00");

list.add(stringdate+" 13:15");

list.add(stringdate+" 13:30");

list.add(stringdate+" 13:45");

list.add(stringdate+" 14:00");

list.add(stringdate+" 14:15");

list.add(stringdate+" 14:30");

list.add(stringdate+" 14:45");

list.add(stringdate+" 15:00");

list.add(stringdate+" 15:15");

list.add(stringdate+" 15:30");

list.add(stringdate+" 15:45");

list.add(stringdate+" 16:00");

list.add(stringdate+" 16:15");

list.add(stringdate+" 16:30");

list.add(stringdate+" 16:45");

list.add(stringdate+" 17:00");

list.add(stringdate+" 17:15");

list.add(stringdate+" 17:30");

list.add(stringdate+" 17:45");

list.add(stringdate+" 18:00");

list.add(stringdate+" 18:15");

list.add(stringdate+" 18:30");

list.add(stringdate+" 18:45");

list.add(stringdate+" 19:00");

list.add(stringdate+" 19:15");

list.add(stringdate+" 19:30");

list.add(stringdate+" 19:45");

list.add(stringdate+" 20:00");

list.add(stringdate+" 20:15");

list.add(stringdate+" 20:30");

list.add(stringdate+" 20:45");

list.add(stringdate+" 21:00");

list.add(stringdate+" 21:15");

list.add(stringdate+" 21:30");

list.add(stringdate+" 21:45");

list.add(stringdate+" 22:00");

list.add(stringdate+" 22:15");

list.add(stringdate+" 22:30");

list.add(stringdate+" 22:45");

list.add(stringdate+" 23:00");

list.add(stringdate+" 23:15");

list.add(stringdate+" 23:30");

list.add(stringdate+" 23:45");

list.add(stringdate+" 24:00");

for(int i=0;i

String time=(String) list.get(i+1);

float y1=new Page().getCounts(list.get(i), list.get(i+1));

int x = Integer.parseInt(time.substring(0, 4));

int y = Integer.parseInt(time.substring(5, 7));

int z = Integer.parseInt(time.substring(8, 10));

int a = Integer.parseInt(time.substring(11, 13));

int b = Integer.parseInt(time.substring(14, 16));

timeseries1.add(new Minute(b, new Hour(a, new Day(z, y, x))), y1);

}

// 连接曲线

TimeSeriesCollection dataset = new TimeSeriesCollection();

dataset.addSeries(timeseries1);

dataset.setDomainIsPointsInTime(true);

// 设置曲线图

XYDataset xydataset = (XYDataset) dataset;

JFreeChart chart = ChartFactory.createTimeSeriesChart(

"穿墙网--8时到24时帖子代维走势图", "时间", "15分钟内代维的帖子数量", xydataset, false, false, false);

chart.setBackgroundPaint(Color.white);// 设置曲线图背景色

XYPlot plot = (XYPlot) chart.getPlot();

XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer) plot

.getRenderer();

plot.setBackgroundPaint(Color.white);// 设置网格背景颜色

plot.setDomainGridlinePaint(Color.pink);// 设置网格竖线颜色

plot.setRangeGridlinePaint(Color.pink);// 设置网格横线颜色

plot.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 10D));// 设置曲线图与xy轴的距离,即曲线与xy轴贴近的距离

xylineandshaperenderer.setBaseShapesVisible(true);// 设置曲线是否显示数据点

String filename="";

try {

filename = ServletUtilities.saveChartAsPNG(chart, 970, 400,

null, session);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

String graphURL = request.getContextPath()

+ "/servlet/DisplayChart?filename=" + filename;

return filename;

}

}

4. 编写jsp 页面

String time = request.getParameter("time");

WebChart chart = new WebChart(time);

String filename = chart.getFolddown(request, session);

String graphURL = request.getContextPath()

+ "/servlet/DisplayChart?filename=" + filename;

%>

代维走势图

/css/css/CN/BLUE/mainWin.css"

type=text/css media=screen rel=stylesheet>

/css/css/CN/BLUE/query.css"

type=text/css media=screen rel=stylesheet>

/css/css/CN/BLUE/calendar.css"

type=text/css media=screen rel=stylesheet>

href="/css/css/comm/BLUE/mainWin.css"

type=text/css media=screen rel=stylesheet>

function searchbbs(){

var time=document.getElementByIdx_x_x("startDate").value;

if(time==""){

alert("时间不能为空,请输入时间.");

return;

}

window.location=""+"/delClient/reportForms.jsp?time="+time;

}

cellspacing="0">

cellspacing="0">

cellspacing="0">

此处可以查看任何一天的代维走势图  请输入日期:

type="test" name="startDate" size="10" οnblur="TextOnBlur(this);"

id="startDate" styleClass="inputdate" οnfοcus="this.select();" />

οnclick="OpenDate(document.all.startDate);">

" border=0">

cellspacing="0">

cellspacing="7" bgcolor="#CCCCCC">

file="/common/foot.jsp"%>

至此 一个折线图就生成完毕!

-----------------------------------------------------

转载请注明来源此处

原地址:#

java 生成折线图_jfree jsp java 生成折线图(详解带jar)相关推荐

  1. java pdf 页眉_itext生成PDF设置页眉页脚的实例详解

    itext生成PDF设置页眉页脚的实例详解 实例代码: /** * ITextTest * iText生成PDF加入列表,注释等内容,同时设置页眉和页脚及页码等. */ package com.lab ...

  2. java导出pdf页码设置_itext生成PDF设置页眉页脚的实例详解

    itext生成pdf设置页眉页脚的实例详解 实例代码: /** * itexttest * itext生成pdf加入列表,注释等内容,同时设置页眉和页脚及页码等. */ package com.lab ...

  3. WEB后台--邮件和短信业务实现(包括Java一键实现、封装和异步)以及原理详解

    本来就打算针对一些固定的特别点的业务(QQ与网易邮件.拦截设计.短信.定时器等等)来进行记录以及解析原理,这些会比较零散记录在JavaWeb的分类里面,感兴趣的童鞋可以去看下. 有人问为什么要邮件短信 ...

  4. js和php能生成一样的随机数_JavaScript_JS生成某个范围的随机数【四种情况详解】,前言: JS没有现成的函数,能 - phpStudy...

    JS生成某个范围的随机数[四种情况详解] 前言: JS没有现成的函数,能够直接生成指定范围的随机数. 但是它有个函数:Math.random()  这个函数可以生成 [0,1) 的一个随机数. 利用它 ...

  5. java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解

    文章目录 前言 一.直接上代码 1. 写字方法 2. 换行算法 二. 叙述换行算法 前言 代码都上传到GitHub了,这里仅仅是贴出来主要部分,GitHub传送门:https://github.com ...

  6. Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  7. Java中创建String的两道面试题及详解

    转载自 Java中创建String的两道面试题及详解 我们知道创建一个String类型的变量一般有以下两种方法: String str1 = "abcd";String str2 ...

  8. java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用

    java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用

  9. java显示参数,Java中的隐式参数和显示参数实例详解

    在学习java的过程中,我们会遇到许多的问题.下面我们就来看看什么是隐式参数和显示参数. 显式参数,就是平时见到的在方法名括号中间的参数,就是所谓能看得见的参数www.cppcns.com. 隐式参数 ...

最新文章

  1. 技术01期:大规模图计算【基础篇】
  2. 寒武纪创始人兼CEO陈天石博士的公开信
  3. LINUX系统以及ANDROID 平台log信息输出级别设置 [MTK]
  4. 图解VC++工具栏和状态栏编程实例
  5. 替换空格---剑指Offer
  6. 语言 micropython_MicroPython蓝牙BLE例程实操(一)
  7. javascript 运算符优先级
  8. 疑似又一vivoX80新机通过3C质量认证:全系标配80W快充
  9. mysql8 win10_window10下安装多个MySQL8.0
  10. linux驱动初探之字符驱动
  11. Linux安装java(jdk8)
  12. php未定义常量破解,如何使PHP未定义的常量注意到错误
  13. 51单片机蜂鸣器演奏《小苹果》C语言程序,51单片机蜂鸣器播放小星星两只老虎欢乐颂 源程序...
  14. DFA敏感词过滤算法详解
  15. java分发_【Java】用注解实现分发器
  16. 一款集成微信小助手的mac微信最新版!支持发朋友圈!
  17. jib推送到harbor私有仓库并拉取镜像
  18. 【洛谷】P5149 会议座位
  19. 直线上最多的点数java
  20. 打算抽时间自学一下游戏制作,做一款Mud文字游戏

热门文章

  1. SAP Marketing Cloud里的contact main facet是什么意思
  2. Action profile: ZAVADDR和ZAVPERS
  3. ABAP document read logic
  4. 列出系统所有未被Business transaction 引用的Products集合
  5. Multiple Origin composition test - Opportunity Creation case
  6. SAP Spartacus的自定义静态页面
  7. S/4HANA服务订单Service Order的批量创建
  8. SAP云平台里的日志系统概述
  9. SAP系统里的订单,可以随便删除么?
  10. 在SAP Smart Business workspace里创建KPI tile的错误消息分析