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

Author

221527107杨怡婕

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

  • 这段代码使用ggplot2绘制了多个金融产品成交量的分面面积图,通过筛选数据、设置美学映射和叠加geom_area()图层清晰展示了各产品成交量随时间的变化趋势。在图形优化上,代码通过调整主题元素(如旋转x轴标签、移除图例和次要网格线)、设置比例尺(按月显示日期标签、y轴以”万手”为单位)以及分面展示(自由刻度)显著提升了可读性。尽管存在少量拼写错误,但整体展现了ggplot2分层定制化的核心思想——从数据映射到几何对象,再通过主题和分面精细化控制,最终实现专业且信息丰富的可视化效果。这种”从整体到细节”的编码逻辑,配合对图形元素的系统性调整,是高效绘制科研级图表的关键。

3 流线图和地平线图

3.1 流线图

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

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

3.2 地平线图

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

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

  • 这两段代码分别使用地平线图(gghorizon)和流线图(ggstream)对金融成交额数据进行可视化呈现:地平线图通过10级色带和均值基准线清晰展示各产品的波动幅度,配合垂直分面和RdYlBu渐变色实现多维度比较;流线图则通过流畅的波段造型和亿元单位转换,直观反映成交额的时间动态与占比变化。二者均体现出专业可视化包的应用价值——通过合理设置分面结构(facet_grid/facet_wrap)、优化坐标轴(scale_x_date)和精选主题(theme_few)来增强图表表现力,同时代码中暴露的拼写错误(如acs/aes)也警示我们需注重编码严谨性。这种根据数据特征(离散比较/连续流动)选择对应图表类型,并通过系统性的美学调整来平衡信息密度与可读性的思路,正是金融数据可视化的核心方法论。

4 不规则时间序列图

4.1 数据准备

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

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

4.2 平滑曲线图

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

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

4.3 K线图

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

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

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

  • 这段代码展示了两种金融数据可视化方法:第一段代码通过数据转换(gather)将收盘价和移动平均线整合后绘制多指标折线图,利用分面(facet_wrap)展示不同股票的表现,并优化x轴刻度显示;第二段代码则专门针对工商银行绘制专业K线图,通过geom_segment绘制最高最低价线、geom_rect绘制红绿K线实体(收盘>开盘为红色),并叠加MA5/MA10/MA20三条移动平均线,配合精心设置的配色方案和精简的主题,完整呈现了K线图的核心要素。两种方法各具特色——折线图适合多股多指标趋势比较,而K线图则更专业地展示单只股票的价格波动特征,共同体现了ggplot2通过图层叠加实现复杂金融图表的能力,同时也反映出数据预处理(如gather转换)和视觉编码(如颜色映射)在金融可视化中的关键作用。