第七章 时间序列可视化课堂练习
1 案例数据
1.1 all_stock_2024:工商银行、招商应用、中信证券和贵州茅台四个股票2024各天交易数据
data为为日期变量,但该日期变量不规则(不连续),周末和公众假期没有交易数据;编码和名称用于识别不同股票,注意不同股票有交易数据日期不一定一致,但本例种各股票均有242个交易日数据;开盘价到换手率均为数值变量,开盘价到成交量与每股资产有关,不同股票间不可比;交易量的单位为手(百股)、成交额的单位为元,振幅等四个变量均为相对指标。
2 折线图和面积图
2.1 合并折线图
将四只股票的
涨跌幅做作折线图,将四条折线在同一个图形输出;日期截取
2024-9-1到2024-10-31;添加一条纵轴为0的参考线,采用
twodash的线型;将图标题改为“合并涨跌幅折线图”。
2.2 分面折线图
将四只股票的
收盘价格做作折线图,将四条折线图分面输出;日期截取一整年;
并使用
ggpol::geom_tshighlight将2024-9-1到2024-10-31时间段高亮显示
2.3 面积图
将四只股票的
收盘价格做作面积图,将四个面积图分面输出;将成交量的单位改为万手
2.4 图形观察和代码编写的心得体会
时间序列数据可视化时,日期格式的处理很关键,需要确保日期变量是Date类型
当不同指标的数值范围差异较大时,分面(facet)加上自由刻度(scales=“free”)是非常有效的解决方案
高亮显示特定时间段可以帮助突出显示关键时期的数据特征
面积图适合展示数据的累积效果,但要注意当数据波动较大时可能会影响可读性
数据转换(如单位转换)应该在绘图前完成,而不是在图形美学映射中处理
主题(theme)设置可以统一应用于多个图形,保持风格一致
对于金融数据,参考线(如y=0)能提供重要的基准参考
3 流线图和地平线图
3.1 流线图
将四只股票的
交易额做作流线图,将四个面积图分面输出;将交易额的单位改为亿元
3.2 地平线图
- 采用
ggHoriPlot::geom_horizon函数,对四只股票的交易额做作地平线图 - 设置原点为均值
origin='mean',输出配色图例
3.3 图形观察和代码编写的心得体会
流线图能直观展示多个时间序列的整体波动趋势和相对比例关系,特别适合展示金融数据的流动变化
地平线图通过色块高度和颜色变化,可以同时展示多个时间序列相对于基准值的偏离程度,节省垂直空间
数据单位的转换应该在数据预处理阶段完成,确保图形标签和解读的准确性
金融数据通常波动较大,选择合适的带宽(bw)参数对流线图的平滑效果很重要
地平线图的origin参数选择(均值或中位数)会影响图形的解读,需要根据分析目的合理选择
分面(facet)设计可以有效比较多个股票的表现,但要注意保持统一的坐标尺度或明确标注自由尺度
配色方案的选择应考虑数据的含义(如红色通常表示上涨/危险,绿色表示下跌/安全)和色盲友好性
时间序列图形的日期轴标签格式化对可读性至关重要,特别是处理高频金融数据时
4 不规则时间序列图
4.1 数据准备
通过
zoo::rollmean时间收盘价的5天、10天和20天的移动平均将日期变量转化为
id变量
4.2 平滑曲线图
将四只股票收盘价和3种移动平均的折线图分面输出;
横轴的每隔30天一个刻度,只显示月/日;
4.3 K线图
选择工商银行数据作出,2024年的K线图
scale_x_continuous将横轴坐标刻度转化回日期型
4.4 图形观察和代码编写的心得体会
移动平均线是技术分析的重要工具,能有效平滑价格波动,显示趋势方向
K线图通过实体和影线直观展示开盘、收盘、最高、最低价的关系,是金融数据分析的核心图表
分面处理可以同时比较多只股票的表现,但要注意保持统一的坐标尺度或明确标注自由尺度
日期轴的处理需要特别注意,连续的交易日数据需要通过索引转换保证图形间距均匀
颜色选择在金融图表中有特定含义(红涨绿跌),应遵循行业惯例
多图表组合时(如K线图与交易量图),需要统一x轴刻度确保时间对齐
技术指标(如不同周期的移动平均线)叠加时,颜色和线型设计要保证可区分性
金融数据可视化要特别注意数据频率(日/周/月)对图表解读的影响