利用JFreeChart生成时序图(6) (转自 JSP开发技术大全)

14.6 利用JFreeChart生成时序图

通过JFreeChart插件只能生成普通效果的时序图,利用工厂类ChartFactory的createTimeSeriesChart()方法获得JFreeChart类的实例,在封装用来绘制时序图的数据时,只能利用XYDataset数据集,而不能利用CategoryDataset数据集。

时序图与折线图有些类似,不过时序图提供了绘制移动平均线的功能,通过给定的数据集对象,可以自动计算任意时间段的移动平均值,移动平均值的计算方法请参见表14.8。

表14.8                                                    移动平均值的计算方法

时    间

零 售 价

2天内的移动平均值

3天内的移动平均值

移动平均值的计算方法

移动平均值的
计算方法

2008-8-6

4

也可视为4

也可视为4

2008-8-7

6

5

(4+6)/2

也可视为5

2008-8-8

8

7

(6+8)/2

6

(4+6+8)/3

如果要绘制移动平均线,就要创建一个用来绘制移动平均线的数据集实例,MovingAverage类提供了多个重载的用来创建数据集对象的静态方法,其一的定义如下:

public static TimeSeries createMovingAverage(TimeSeries source,

String name, int periodCount, int skip)

参数说明

l     source:移动平均线对应的绘图数据集实例,移动平均线的绘制数据即根据该实例产生。

l     name:移动平均线图例的名称。

l     periodCount:移动平均值的计算周期。

l     skip:移动平均值的起始计算点。

然后通过TimeSeriesCollection类的addSeries()方法,将绘图数据集和移动平均线数据集添加到TimeSeriesCollection类的实例中。

 示例14-06 每日股票走势时序图分析

下面来看一个绘制时序图的例子,该例绘制的时序图效果如图14.9所示。

图14.9 每日股票走势时序图分析

代码14-06 光盘位置:光盘\mingrisoft\sl\14\06

创建绘图数据集实例,代码如下:

TimeSeries timeSeries = new TimeSeries(chartTitle, xTitle, yTitle, Minute.class);

Iterator it = data.keySet().iterator();

Minute minute;

while (it.hasNext()) {

minute = (Minute) it.next();

timeSeries.add(minute, (Double) data.get(minute));

}

创建用来绘制移动平均线的数据集实例,代码如下:

TimeSeries average1 = MovingAverage.createMovingAverage(timeSeries,

"每1小时平均涨幅百分比", 60, 0);      // 绘制1小时移动平均线

TimeSeries average2 = MovingAverage.createMovingAverage(timeSeries,

"每2小时平均涨幅百分比", 120, 0);     // 绘制2小时移动平均线

TimeSeries average4 = MovingAverage.createMovingAverage(timeSeries,

"每4小时平均涨幅百分比", 240, 0);     // 绘制4小时移动平均线

将数据集实例和移动平均线数据集实例添加到TimeSeriesCollection类的实例中,代码如下:

TimeSeriesCollection dataset = new TimeSeriesCollection();

dataset.addSeries(timeSeries);

dataset.addSeries(average1);

dataset.addSeries(average2);

dataset.addSeries(average4);

 
 

利用JFreeChart生成时序图(6) (转自 JSP开发技术大全)的更多相关文章

  1. 利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全)

    利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全) 14.5 利用JFreeChart生成区域图 通过JFreeChart插件只能生成普通效果的区域图,利用工厂类ChartFac ...

  2. 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)

    利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...

  3. 利用JFreeChart生成组合图表 (8) (转自 JSP开发技术大全)

    利用JFreeChart生成组合图表 (8) (转自 JSP开发技术大全) 14.8 利用JFreeChart生成组合图表  实例位置:光盘\mingrisoft\14\dxyy\02 通过JFree ...

  4. JFreeChart生成饼形图(3)11 (转自 JSP开发技术大全)

    FreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图:如 ...

  5. 利用JFreeChart生成多轴图表(7) (转自 JSP开发技术大全)

    利用JFreeChart生成多轴图表(7) (转自 JSP开发技术大全) 14.7 利用JFreeChart生成多轴图表 通过JFreeChart插件还可以生成拥有多个坐标轴的图表,简称多轴图表.在生 ...

  6. JFreeChart生成饼形图(3) (转自 JSP开发技术大全)

    JFreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图: ...

  7. JFreeChart生成柱形图(2) (转自 JSP开发技术大全)

    JFreeChart生成柱形图(2) (转自 JSP开发技术大全) 14.2 利用JFreeChart生成柱形图14.2.1 利用DefaultCategoryDataset数据集绘制柱形图 通过JF ...

  8. JFreeChart基础(1) (转自 JSP开发技术大全)

    JFreeChart基础(1) (转自 JSP开发技术大全) JFreeChart是一个Java开源项目,是一款优秀的Java图表生成插件,它提供了在Java Application.Servlet和 ...

  9. IntelliJ IDEA 如何生成时序图?

    进入扩展程序安装 File > Settings > Plugins > Browse Repositories 搜索 SequenceDiagram,点击右边 Install 安装 ...

随机推荐

  1. bzoj1174 Toponyms

    给你一个字符集合,你从其中找出一些字符串出来. 希望你找出来的这些字符串的最长公共前缀*字符串的总个数最大化. 第一行给出数字N.N在[2,1000000] 下面N行描述这些字符串,长度不超过2000 ...

  2. 基于nvm的Node、NPM的版本管理(NPM permission error的解决)

    最近在使用npm过程中,发现全局安装总会遇到permission相关的错误,所以总是要在前面加sudo,还得不停输入密码. 懒惰使我进步,随手google了一下相关问题的解决方案,发现npm在官方文档 ...

  3. ArcGIS:Hello World Maps

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...

  4. ubuntu 安装 navicat

    下载navicat解压到opt目录 创建桌面快捷方式sudo vim /usr/share/applications/navicat.desktop [Desktop Entry] Encoding= ...

  5. Python之基础练习题

    Python之基础练习题 1.执行 Python 脚本的两种方式 2.简述位.字节的关系 解:8位是一个字节 3.简述 ascii.unicode.utf-8.gbk 的关系 4.请写出 “李杰” 分 ...

  6. python 调用 C 动态库

    首先是 C 的头文件和源文件, #ifndef POINT_H #define POINT_H struct point { int x; int y; }; void point_print(str ...

  7. MySQL Connector/Python 接口 (三)

    本文参见这里. 使用缓冲的 cursor,下例给从2000年加入公司并且还在公司的员工薪水从明天起加15% from __future__ import print_function from dec ...

  8. 【Kafka问题解决】Connection to xxx could not be established. Broker may not be available.

    请检查Kafka的config/server.properties 看看是否有填写 listeners=PLAINTEXT://kafka-host:9092 advertised.listeners ...

  9. Linux 文件与目录结构

    [Linux文件] Linux 系统中一切皆文件. [Linux目录结构] --/bin 是Binary的缩写, 这个目录存放着最经常使用的命令. --/sbin s就是Super User的意思,这 ...

  10. iPhone安装ipa的方法(iTunes,PP助手)

    1,通过iTunes: 将手机与电脑通过数据线连接,打开电脑中的iTunes,将ipa文件添加到资料库(ipa文件是iTunes能够识别的文件),方式如下图,然后安装,同步即可. 2,通过PP助手: ...