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

Author

221527209 王琳慧

1 案例数据

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

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

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

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

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

2 折线图和面积图

2.1 合并折线图

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

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

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

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

2.2 分面折线图

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

  • 日期截取一整年;

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

2.3 分面面积图

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

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

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

  • 涨跌幅对比图(2024年9-10月)显示茅台波动剧烈(±10%),工行稳定(±1%),10月中旬市场普跌;

  • 收盘价分面图(全年)通过独立Y轴与蓝色高亮区,突出茅台9-10月加速上涨,工行横盘;

  • 成交量面积图(全年)暴露量级差异(工行峰值1500万手 vs 茅台100万手),关键时段如茅台9月量价齐升。
    代码亮点:分面解决量纲差异、日期格式化提升可读性、高亮区间聚焦重点,细节处理(如隐藏冗余图例、优化网格线)增强视觉清晰度。

3 流线图和地平线图

3.1 流线图

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

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

3.2 地平线图

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

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

  • 借助 ggplot2 及扩展包,地平线图通过分面呈现各品类成交额的分层波动,流图以堆叠展示类别占比趋势。代码需精准映射数据、调试参数(如 horizonscale、bw)。观察到不同品类成交额的时间变化,体会到可视化对数据洞察的助力,也明白图形类型需适配数据特点 。

4 不规则时间序列图

4.1 数据准备

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

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

4.2 平滑曲线图

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

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

4.3 K线图

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

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

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

  • 图形涉及工商银行、贵州茅台、招商银行、中信证券,展示其股价及 MA5、MA10、MA20 均线走势;图形与代码:通过 ggplot2 绘制多股股价及 MA 均线(MA5、MA10、MA20 等)折线,`facet_wrap` 按股票分面,展现各股指标时序变化,代码处理日期索引,虽有缺失值警告,仍实现多股指标可视化 。