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

Author

221527110陈艺印

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 图形观察和代码编写的心得体会

  • 代码:通过mytheme自定义图例位置和背景,提升图表美观度;使用filter()和select()进行数据切片;折线图添加参考线(geom_hline);分面绘图(facet_wrap)实现多指标对比;面积图(geom_area)适合展示成交量累积效果

  • 图形:折线图清晰展示不同股票涨跌幅的同期波动规律;geom_tshighlight有效突出特定时间段的表现。分面图可以将各股票指标独立刻度避免量纲干扰,但需注意Y轴单位差异。面积图能清晰展示各组分的占比变化,填充颜色使图形更醒目

3 流线图和地平线图

3.1 流线图

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

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

3.2 地平线图

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

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

  • 代码:流线图使用 展示多类别时间序列的流动趋势,适合对比成交额的动态变化。bw 参数调整平滑度,避免过度波动或过于平坦。地平线图geom_horizon() 压缩Y轴,用颜色深浅表示数值高低,节省纵向空间,适合多序列对比。origin=‘mean’ 以均值为基准,突出偏离程度;horizonscale 控制分段粒度。facet_grid(名称~.) 垂直分面,清晰隔离不同股票数据。

  • 图形:流线图直观展示成交额的相对变化与趋势重叠,填充色增强视觉连续性。地平线图通过色块高度和颜色快速识别异常波动(如峰值/低谷),适合密集时间序列。

4 不规则时间序列图

4.1 数据准备

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

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

4.2 平滑曲线图

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

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

4.3 K线图

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

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

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

  • 代码:多指标折线图gather() 将收盘价和均线转为长格式,便于用 color=指标区分。facet_wrap(~名称, scale=“free”) 实现个股独立刻度,避免量纲干扰。scale_x_continuous 自定义标签,避免重叠。 K线图geom_segment 画高低线,geom_rect 画涨跌实体(红涨绿跌)。scale_fill_manual 自定义涨跌色,theme_minimal 保持简洁。

  • 图形:多指标折线图分面清晰对比个股趋势,均线揭示短期/长期走势。K线图整合开盘、收盘、高低价和均线,专业展示股价波动。