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

Author

221527130郭宝声

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

  • 图形观察心得:
    先绘制基础图形(如 geom_point()),确认数据结构和坐标范围,逐步叠加图层(面积/折线/柱状),避免一次性代码过多导致调试困难。

    代码编写心得:
    在RStudio中养成”编码-观察-迭代”的闭环习惯:

    1. 使用 Ctrl+Shift+F10 重启Session保持环境清洁

    2. 通过 assign("last_plot", p, envir = globalenv()) 保存临时图形对象

    3. 善用 ggsave("plot.png", plot = last_plot(), width=8, height=6) 多版本存档

    4. 对复杂图形采用 # ---- Section 1 ---- 代码分块管理

3 流线图和地平线图

3.1 流线图

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

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

3.2 地平线图

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

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

  • scale_fill_hcl(palette=‘RdYlBu’,reverse=T)+ # 设置调色板(颜色反转)红色代表交易量高更合理

  • 这张地平线图展示了2024年不同指标(ypos和yneg系列)的成交额变化。颜色深浅反映成交额偏离中位数的程度,红色(ypos05)表示正向极端值,蓝色(yneg05)表示负向极端值。成交额在年中(6-8月)波动较大,11月后趋于平稳,ypos05和yneg05在年中表现出明显的高峰和低谷。

4 不规则时间序列图

4.1 数据准备

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

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

4.2 平滑曲线图

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

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

4.3 K线图

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

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

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

  • 从图中可以看出,工业镍价格K线图显示了价格波动趋势,结合MA5、MA10、MA20三条均线,短期均线(MA5)波动较快,反应价格短期变化;长期均线(MA20)更平稳,反映总体趋势。均线交叉点常预示价格反转或趋势延续,例如9月中旬MA5上穿MA20后价格上涨,11月中旬均线纠缠后价格震荡。

    代码编写心得:
    编写此类图形代码时,需熟练使用绘图库(如Matplotlib),确保数据准确导入,合理设置均线参数(如5、10、20),并优化图形展示(如颜色、标签、网格)。代码逻辑要清晰,注释完善,便于调试和复用。