没有合适的资源?快使用搜索试试~ 我知道了~
使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP
4星 · 超过85%的资源 需积分: 12 30 下载量 149 浏览量
2013-04-24
10:31:20
上传
评论 3
收藏 159KB DOC 举报
温馨提示
试读
13页
虽然现在JS做报表和图形展示已经非常普遍和漂亮了,但是不能忽略有jfreechart 这样一种东西! 这些翻阅资料,在看以前写的示例时发现了关于jfreechart 的简单示例,不管怎样发上来分享一下!
资源推荐
资源详情
资源评论
虽然现在 JS 做报表和图形展示已经非常普遍和漂亮了,但是不能忽略有
jfreechart 这样一种东西!
这些翻阅资料,在看以前写的示例时发现了关于 jfreechart 的简单示例,不管
怎样发上来分享一下!
这个示例使用 JSP 和 Servlet 做后台和前台展示,下面有源代码可以直接运行!
生产线型趋势图:
package com.xidian.servlet;
import java.awt.Color;
import java.awt.Font;
import java.io.*;
import java.text.SimpleDateFormat;
import javax.servlet.ServletExcepon;
import javax.servlet.hp.HpServlet;
import javax.servlet.hp.HpServletRequest;
import javax.servlet.hp.HpServletResponse;
import org.jfree.chart.*;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.tle.TextTitle;
import org.jfree.data.me.Day;
import org.jfree.data.me.TimeSeries;
import org.jfree.data.me.TimeSeriesCollecon;
import org.jfree.data.xy.XYDataset;
/**
* 生产线型趋势图
* @说明
* @author cuisuqiang
* @version 1.0
* @since
*/
@SuppressWarnings("serial")
public class LineServlet extends HpServlet {
@SuppressWarnings("deprecaon")
@Override
protected void service(HpServletRequest request,
HpServletResponse response) throws ServletExcepon, IOExcepon {
response.setContentType("text/html");
// 在 Mysql 中使用 select
// year(accessdate),month(accessdate),day(accessdate),count(*)
// 其中 accessdate 是一个 date 类型的时间
// 时间序列对象集合
TimeSeriesCollecon chartTime = new TimeSeriesCollecon();
// 时间序列对象,第 1 个参数表示时间序列的名字,第 2 个参数是时间类型,这
里为天
// 该对象用于保存前 count 天每天的访问次数
TimeSeries meSeries = new TimeSeries("日访问", Day.class);
// 为了演示,直接拼装数据
// Day 的组装格式是 day-month-year 访问次数
meSeries.add(new Day(1, 1, 2010), 50);
meSeries.add(new Day(2, 1, 2010), 47);
meSeries.add(new Day(3, 1, 2010), 82);
meSeries.add(new Day(4, 1, 2010), 95);
meSeries.add(new Day(5, 1, 2010), 104);
meSeries.add(new Day(6, 1, 2010), 425);
chartTime.addSeries(meSeries);
XYDataset date = chartTime;
try {
// 使用 ChartFactory 来创建时间序列的图表对象
JFreeChart chart = ChartFactory.createTimeSeriesChart(
"网站每天访问统计", // 图形标题
"日期", // X 轴说明
"访问量", // Y 轴说明
date, // 数据
true, // 是否创建图例
true, // 是否生成 Toolps
false // 是否生产 URL 链接
);
// 设置整个图片的背景色
chart.setBackgroundPaint(Color.PINK);
// 设置图片有边框
chart.setBorderVisible(true);
// 获得图表区域对象
XYPlot xyPlot = (XYPlot) chart.getPlot();
// 设置报表区域的背景色
xyPlot.setBackgroundPaint(Color.lightGray);
// 设置横 纵坐标网格颜色
xyPlot.setDomainGridlinePaint(Color.GREEN);
xyPlot.setRangeGridlinePaint(Color.GREEN);
// 设置横、纵坐标交叉线是否显示
xyPlot.setDomainCrosshairVisible(true);
xyPlot.setRangeCrosshairVisible(true);
// 获得数据点(X,Y)的 render,负责描绘数据点
XYItemRenderer xyItemRenderer = xyPlot.getRenderer();
if (xyItemRenderer instanceof XYLineAndShapeRenderer) {
XYLineAndShapeRenderer xyLineAndShapeRenderer =
(XYLineAndShapeRenderer) xyItemRenderer;
xyLineAndShapeRenderer.setShapesVisible(true); // 数据点可见
xyLineAndShapeRenderer.setShapesFilled(true); // 数据点是实心点
xyLineAndShapeRenderer.setSeriesFillPaint(0, Color.RED); // 数据点填充为蓝
色
xyLineAndShapeRenderer.setUseFillPaint(true);// 将 设置好的属性应用 到
render 上
}
// 配置以下内容方可解决乱码问题
// 配置字体
Font xfont = new Font("宋体", Font.PLAIN, 12); // X 轴
Font yfont = new Font("宋体", Font.PLAIN, 12); // Y 轴
Font kfont = new Font("宋体", Font.PLAIN, 12); // 底部
Font tleFont = new Font("宋体", Font.BOLD, 25); // 图片标题
// 图片标题
chart.setTitle(new TextTitle(chart.getTitle().getText(), tleFont));
// 底部
chart.getLegend().setItemFont(kfont);
// X 轴
ValueAxis domainAxis = xyPlot.getDomainAxis();
剩余12页未读,继续阅读
资源评论
- zhangjiangnan12014-01-14还不错,可以参考
- 问天一笑2013-05-13不错的东东,只是源码中有些错误,稍作修改还是能用
- linboss2014-05-24很好用,一调试完就可以运行了
- kangjian1232013-05-31东东还行,只是和我项目需求不太相符
- eshen_8662014-01-20最近项目开发正需要这个,非常感谢
java小强
- 粉丝: 49
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功