第七章 时间序列可视化课堂练习
1 案例数据
1.1 all_stock_2024:工商银行、招商应用、中信证券和贵州茅台四个股票2024各天交易数据
data
为为日期变量,但该日期变量不规则(不连续),周末和公众假期没有交易数据;编码
和名称
用于识别不同股票,注意不同股票有交易数据日期不一定一致,但本例种各股票均有242个交易日数据;开盘
价到换手率
均为数值变量,开盘
价到成交量
与每股资产有关,不同股票间不可比;交易量的单位为手(百股)、成交额的单位为元,振幅等四个变量均为相对指标。
2 折线图和面积图
2.1 合并折线图
将四只股票的
涨跌幅
做作折线图,将四条折线在同一个图形输出;日期截取
2024-9-1
到2024-10-31
;添加一条纵轴为0的参考线,采用
twodash
的线型;将图标题改为“合并涨跌幅折线图”。
2.2 分面折线图
将四只股票的
收盘
价格做作折线图,将四条折线图分面输出;日期截取一整年;
并使用
ggpol::geom_tshighlight
将2024-9-1
到2024-10-31
时间段高亮显示
2.3 面积图
将四只股票的
成交量
价格做作面积图,将四个面积图分面输出;将成交量的单位改为万手
2.4 图形观察和代码编写的心得体会
从4个面积图可以看出10月份四只股票的
成交量都很高
y=成交量/10000 要注意因变量的单位
3 流线图和地平线图
3.1 流线图
将四只股票的成交额作流线图
将交易额的单位改为亿元
3.2 地平线图
- 采用
ggHoriPlot::geom_horizon
函数,对四只股票的交易额
做作地平线图 - 设置原点为均值
origin='mean'
,输出配色图例
List of 4
$ legend.background : list()
..- attr(*, "class")= chr [1:2] "element_blank" "element"
$ legend.position : chr "inside"
$ legend.position.inside: num [1:2] 0.1 0.8
$ title : chr "24年成交额的地平线图"
- attr(*, "class")= chr [1:2] "theme" "gg"
- attr(*, "complete")= logi FALSE
- attr(*, "validate")= logi TRUE
3.3 图形观察和代码编写的心得体会
4 不规则时间序列图
4.1 数据准备
通过
zoo::rollmean
时间收盘价的5天、10天和20天的移动平均将日期变量转化为
id
变量
4.2 平滑曲线图
将四只股票收盘价和3种移动平均的折线图分面输出;
横轴的每隔30天一个刻度,只显示月/日;
4.3 K线图
选择工商银行数据作出,2024年的K线图
scale_x_continuous
将横轴坐标刻度转化回日期型
# A tibble: 242 × 12
# Groups: 名称 [1]
日期 编码 名称 开盘 收盘 最高 最低 成交量 ma5 ma10 ma20
<date> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 2024-01-02 601398 工商银行 4.78 4.79 4.83 4.77 2071811 NA NA NA
2 2024-01-03 601398 工商银行 4.79 4.84 4.85 4.78 2488954 NA NA NA
3 2024-01-04 601398 工商银行 4.84 4.89 4.9 4.83 2865676 NA NA NA
4 2024-01-05 601398 工商银行 4.89 4.87 4.94 4.86 2860747 NA NA NA
5 2024-01-08 601398 工商银行 4.87 4.88 4.91 4.85 3252257 4.85 NA NA
6 2024-01-09 601398 工商银行 4.88 4.88 4.89 4.83 2257345 4.87 NA NA
7 2024-01-10 601398 工商银行 4.87 4.85 4.91 4.83 2342435 4.87 NA NA
8 2024-01-11 601398 工商银行 4.84 4.78 4.85 4.77 3306669 4.85 NA NA
9 2024-01-12 601398 工商银行 4.77 4.81 4.83 4.76 2300665 4.84 NA NA
10 2024-01-15 601398 工商银行 4.8 4.86 4.86 4.79 1810483 4.84 4.85 NA
# ℹ 232 more rows
# ℹ 1 more variable: date_index <int>