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

Author

221527221黄俊炜

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(yintercept=0) 添加 零基准线,方便判断涨跌方向。

  • geom_tshighlight 高亮 9-10月区间,突出该时段的市场表现。

  • 折线图(geom_line)能直观反映股票价格的 短期波动,分面图(facet_wrap)适合对比 不同股票的独立趋势,面积图(geom_area)强调 成交量的累积效应。

3 流线图和地平线图

3.1 流线图

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

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

3.2 地平线图

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

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

  • 流线图选取了 日期、股票名称、成交额,。geom_stream() 绘制 流线图,展示不同股票成交额的 相对占比和趋势变化地平线图geom_horizon() 将数据 按均值(origin=‘mean’)分层,每层代表一定数值范围(horizonscale=10)。facet_grid(名称~.) 纵向分面,适合对比多股票的 极端波动配色scale_fill_hcl(palette='RdYlBu') 使用红-黄-蓝渐变,暖色(红)表示 高于均值,冷色(蓝)表示 低于均值

4 不规则时间序列图

4.1 数据准备

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

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

4.2 平滑曲线图

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

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

4.3 K线图

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

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

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

  • 平滑曲线图分面布局:通过 facet_wrap(~股票名称) 实现多股并行对比,清晰展示各股的收盘价与均线(MA5/10/20)互动关系。坐标轴优化scale_x_continuous() 将序号转换为”MM-DD”格式的日期标签,并通过间隔标注(如每15天)避免标签重叠。视觉增强:隐藏颜色图例(guides(color="none")),因分面标题和线条颜色已明确语义(蓝色=收盘价,其他颜色=均线)。

  • K线图 完整呈现价格波动与均线系统的动态关系(如金叉/死叉),适用于个股趋势分析。

    图表构成蜡烛主体geom_rect() 绘制红涨/绿跌的实体矩形(开盘价-收盘价区间),颜色编码反映当日涨跌。影线标记geom_segment() 添加垂直线段表示最高-最低价波动范围。均线叠加geom_line() 分层绘制MA5(蓝色)、MA10(橙色)、MA20(紫色),线型粗细区分。交互优化刻度策略:X轴每20天显示一个日期标签(breaks=seq(1, 242, by=20)),平衡信息密度与可读性。图例管理:顶部集中显示均线图例(theme(legend.position="top")),隐藏蜡烛图例(冗余信息)。