第七章 时间序列可视化课堂练习
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 图形观察和代码编写的心得体会
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")),隐藏蜡烛图例(冗余信息)。