第七章 时间序列可视化课堂练习
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 图形观察和代码编写的心得体会
涨跌幅折线图
观察:四只股票(工商银行、贵州茅台、招商银行、中信证券)在2024年9月至10月期间的涨跌幅波动明显,贵州茅台波动幅度最大,工商银行相对稳定。零线(y=0)的虚线帮助快速区分涨跌区域。
收盘价分面折线图
观察:通过facet_wrap分面显示,各股票收盘价趋势独立呈现,避免量纲差异问题。贵州茅台股价显著高于其他股票,且波动更剧烈。
成交量面积图
观察:工商银行成交量远高于其他股票(单位:万手),面积图直观展示总量和趋势。分面后Y轴独立缩放,避免小成交量股票被压缩。
3 流线图和地平线图
3.1 流线图
将四只股票的
成交额做作流线图,将四个面积图分面输出;将交易额的单位改为亿元
3.2 地平线图
- 采用
ggHoriPlot::geom_horizon函数,对四只股票的成交额做作地平线图 - 设置原点为均值
origin='mean',输出配色图例
3.3 图形观察和代码编写的心得体会
成交额流线图(Stream Plot)
观察:使用geom_stream()展示不同股票成交额的动态变化,流线的宽度和高度反映成交额大小。贵州茅台和工商银行的成交额波动显著,流线起伏明显;而中信证券和招商银行的成交额相对平稳。流线图直观呈现多组时间序列的相对比例和趋势,适合对比不同股票的成交额分布。
成交额地平线图(Horizon Plot)
观察:通过geom_horizon()将成交额按均值分箱,颜色深浅表示偏离均值的程度。分面后,贵州茅台的成交额波动剧烈(颜色变化频繁),而工商银行的波动较平缓。地平线图高效利用空间,适合展示高密度时间序列数据,尤其适用于多组数据对比。
4 不规则时间序列图
4.1 数据准备
通过
zoo::rollmean时间收盘价的5天、10天和20天的移动平均将日期变量转化为
id变量
4.2 平滑曲线图
将四只股票收盘价和3种移动平均的折线图分面输出;
横轴的每隔30天一个刻度,只显示月/日;
4.3 K线图
选择工商银行数据作出,2024年的K线图
scale_x_continuous将横轴坐标刻度转化回日期型
4.4 图形观察和代码编写的心得体会
平滑曲线图
核心观察:通过facet_wrap分面展示不同股票(工商银行、贵州茅台等)的收盘价和均线(MA5/MA10/MA20)趋势,发现:
贵州茅台股价波动幅度显著大于银行股,MA5频繁穿越MA20,短期波动剧烈。
银行股的均线排列更稳定(如MA5>MA10>MA20),呈现多头趋势。
工商银行K线图
核心观察:K线实体(红绿矩形)显示日内开盘-收盘价差,结合上下影线(最高-最低价)反映波动。
MA5对短期价格变化敏感,曾多次成为支撑/压力位。