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

Author

221527116 古林琳

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_hline()添加参考线,theme()调整图例位置,使图表更专业

分面折线图的优势

  1. 解决了合并折线图的拥挤问题,每个股票有独立空间展示

  2. 使用facet_wrap()scale="free"让每个子图有适合自身数据的y轴刻度

  3. geom_tshighlight()高亮特定时间段,突出显示关键时期的表现

面积图的特点

  1. 适合展示成交量这类累积数据,视觉冲击力强

  2. 将单位转换为”万手”使数据更易读,体现了数据预处理的重要性

  3. 分面展示避免了不同股票成交量差异过大导致的显示问题

心得体会

  • 选择合适的图表类型对有效传达信息至关重要

  • 细节调整(如参考线、单位转换、高亮区域)能显著提升图表专业性

  • ggplot2的图层思想让图表构建灵活且可扩展

  • 数据预处理(如日期筛选、单位转换)是可视化前的重要步骤

3 流线图和地平线图

3.1 流线图

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

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

3.2 地平线图

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

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

流线图分析

  • 视觉流动性:流线图通过流畅的曲线和填充色生动展现了成交额的波动趋势,比传统面积图更具动感

  • 分面展示:四只股票的成交额独立展示,避免了量级差异造成的视觉干扰

  • 单位转换:将原始单位转换为”亿元”使数据更符合金融分析习惯,提升可读性

地平线图分析

  • 空间效率:将y轴维度压缩为色带,极大节省垂直空间,适合长期趋势分析

  • 异常值突出:通过色阶变化直观显示偏离均值的异常成交情况

  • 多序列对比:分面布局保持时间轴对齐,便于横向比较不同股票表现

4 不规则时间序列图

4.1 数据准备

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

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

4.2 平滑曲线图

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

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

4.3 K线图

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

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

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

平滑曲线图分析

  • 多线对比:原始收盘价与三种移动平均线同图展示,清晰呈现趋势信号

  • 分面布局:四只股票独立展示,避免量级差异干扰,scale="free"确保各自y轴适配

K线图分析

核心元素

  • geom_segment绘制上下影线(最低价到最高价)

  • geom_rect绘制实体部分(开盘到收盘),红涨绿跌