第七章 时间序列可视化课堂练习

Author

kaka

1 案例数据

1.1 all_stock_2024:工商银行、招商应用、中信证券和贵州茅台四个股票2024各天交易数据

  • data为为日期变量,但该日期变量不规则(不连续),周末和公众假期没有交易数据;

  • 编码名称用于识别不同股票,注意不同股票有交易数据日期不一定一致,但本例种各股票均有242个交易日数据;

  • 开盘价到换手率 均为数值变量,开盘价到成交量与每股资产有关,不同股票间不可比;

  • 交易量的单位为手(百股)、成交额的单位为元,振幅等四个变量均为相对指标。

2 折线图和面积图

2.1 合并折线图

  • 将四只股票的涨跌幅 做作折线图,将四条折线在同一个图形输出;

  • 日期截取2024-9-12024-10-31

  • 添加一条纵轴为0的参考线,采用twodash 的线型;

  • 将图标题改为“合并涨跌幅折线图”。

  • 整体波动:4 只股票涨跌幅均有明显波动,中信证券(紫色)、贵州茅台(绿色)波动幅度相对更大,工商银行(红色)、招商银行(青色)相对平缓。

  • 极端值:10 月上旬,中信证券、贵州茅台等出现大幅涨跌(如中信证券涨超 10 、跌超 -5 ),或受市场事件、财报等影响。

  • 趋势对比:不同股票涨跌节奏不同,如 9 月中旬工商银行、招商银行走势较同步,10 月后分化明显,反映个股在市场环境中表现差异,可结合同期行业、大盘数据,探究波动背后的驱动因素(如金融政策、消费板块消息等 ) 。

2.2 分面折线图

  • 将四只股票的收盘 价格做作折线图,将四条折线图分面输出;

  • 日期截取一整年;

  • 并使用ggpol::geom_tshighlight2024-9-12024-10-31 时间段高亮显示

2.3 面积图

  • 将四只股票的收盘 价格做作面积图,将四个面积图分面输出;

  • 将成交量的单位改为万手

  • 个股差异:工商银行(红)、中信证券(紫)量级以 “万” 计,贵州茅台(绿)、招商(青)相对低,反映股票流通盘、交易活跃度基础差异。

  • 峰值共性:4 股均在 10 月左右 出现明显成交量高峰(工商银行峰值超 1500 万、招商超 300 万等 ),或因市场季度节点(三季报、政策窗口)、行业事件驱动交易热情。

  • 常态波动:除峰值外,工商银行、贵州茅台成交量相对平稳,招商、中信证券波动更频繁,体现不同股票交易节奏(如券商股中信证券受市场情绪影响,波动天然更高 )。

  • 趋势关联:结合前图涨跌幅,10 月成交量高峰常伴随价格波动放大,验证 “量在价先” 逻辑 —— 交易热度提升往往推动价格变化,可辅助判断行情持续性(放量异动需结合消息面,区分短期炒作与趋势反转 )。

3 流线图和地平线图

3.1 流线图

  • 将四只股票的交易额 做作流线图,将四个面积图分面输出;

  • 将交易额的单位改为亿元

  • 整体趋势:全年成交额有波动,10 月左右出现明显峰值,多股成交额大幅增长,反映该时段交易热度高。

  • 个股表现:工商银行(红)、贵州茅台(绿)、招商银行(青)、中信证券(紫)各有特征,工商银行在峰值期表现突出,中信证券波动相对更显著,体现个股交易活跃度差异。

  • 关联对比:结合前期成交量、涨跌幅图,10 月成交额峰值与价格、成交量异动呼应,验证市场交易热度与行情变化的关联,可探究是否受行业政策、财报等事件驱动。

3.2 地平线图

  • 采用ggHoriPlot::geom_horizon函数,对四只股票的交易额 做作地平线图
  • 设置原点为均值origin='mean',输出配色图例

3.3 图形观察和代码编写的心得体会

  • 整体布局:按个股分 4 个子图,横轴是日期(2024 年 1 月 - 2025 年 1 月 ),纵轴是成交额相对刻度,右侧图例用颜色区分不同 “成交额区间 / 类别”(ypos 为正、yneg 为负,数字越大代表程度越强 )。

  • 共性特征:10 月左右,4 只股票均出现深蓝色(ypos5 )等高亮度色块,说明该时段成交额显著放大,是交易热度高峰,与前期流线图、成交量图的 10 月峰值呼应。

  • 个股差异:工商银行、贵州茅台、招商银行在 10 月的高成交额(ypos5 )表现更突出且持续;中信证券虽 10 月也有异动,但高亮度区间相对短,反映个股在行情热度中的参与度、资金聚焦度不同,可结合行业属性(银行股盘子大、券商股弹性高 )辅助理解。

  • 日常波动:除 10 月外,多数时间以黄、浅绿等 “yneg / 低 ypos” 色系为主,说明成交额相对平稳,不同个股日常波动的颜色分布(如工商银行黄色块更密集,中信证券偶尔有浅绿 ),体现常态交易活跃度差异。

4 不规则时间序列图

4.1 数据准备

  • 通过zoo::rollmean 时间收盘价的5天、10天和20天的移动平均

  • 将日期变量转化为id变量

4.2 平滑曲线图

  • 将四只股票收盘价和3种移动平均的折线图分面输出;

  • 横轴的每隔30天一个刻度,只显示月/日;

  • 趋势差异:工商银行、招商银行整体呈震荡上涨(工行从~5 涨到~7 、招商从~28 涨到~40 );贵州茅台是高位震荡回落(从~1700 跌至~1500 - 1600 区间 );中信证券前低后高(下半年从~20 冲高至~35 ),反映个股基本面、市场预期分化。

  • 波动节奏:工商银行、招商银行波动相对 “稳”(斜率平缓、回撤小 ),契合 “蓝筹股” 属性;贵州茅台虽整体回落,但上半年波动小、趋势性强;中信证券弹性最大(下半年异动明显 ),符合券商股 “跟市场情绪强关联” 特征。

  • 关键节点:9 - 10 月是分化拐点 —— 工商银行、招商加速上行,贵州茅台延续回落,中信证券脉冲式冲高,或受 “三季报披露”“市场风格切换(低估值 vs 消费 / 成长 )” 等事件驱动,可结合同期行业政策、宏观数据验证关联。

4 股走势反映不同板块(银行、消费、券商 )特征:银行股 “稳增长”、茅台代表 “消费蓝筹波动”、券商体现 “市场情绪弹性” 。

4.3 K线图

  • 选择工商银行数据作出,2024年的K线图

  • scale_x_continuous 将横轴坐标刻度转化回日期型

4.4 图形观察和代码编写的心得体会

  • 趋势:整体呈震荡上行,股价从 5.0 左右逐步攀升至 7.0 ,多头趋势明确。

  • 均线:短(MA5)、中(MA10)、长(MA20)均线多头排列(MA5 在上、MA10 居中、MA20 在下 ),且均线随股价抬升向上发散,支撑上涨逻辑。

  • 波动:虽有回撤(如 8 - 9 月、10 月小调整 ),但未破关键均线(MA20 基本为调整下限 ),回踩后均重拾升势,体现 “趋势性行情中回踩确认” 特征,反映市场对工行股价的做多共识较强 。

工行股价依托均线走震荡上涨,均线系统强化多头信号,回撤是趋势中的 “健康调整” 。