Stata绘图X轴日期格式修改:将年-周改为年/年-月
调整Stata时间序列图X轴显示格式(年/年-月替代年-周)
我有一份周度数据集,使用以下Stata代码绘制变量间的因果关系图:
generate Date = wofd(D) format Date %tw tsset Date tvgc Momentum supply, p(3) d(3) trend window(25) prefix(_) graph
当前生成的图X轴显示为年-周格式,希望修改为仅显示年份或年-月格式,可通过以下几种方法实现:
方法1:修改日期变量的显示格式
直接调整Date变量的格式,覆盖原有的%tw(年-周)格式:
// 改为仅显示年份 format Date %Y // 或者改为年-月格式 format Date %Ym
重新运行tvgc命令即可,部分命令会自动沿用变量的显示格式作为X轴标签。如果此方法无效,尝试下面的自定义刻度方法。
方法2:自定义X轴刻度与标签
如果tvgc命令允许传递图形参数,可在graph选项后添加xtick参数,手动指定刻度位置和标签格式:
// 先获取时间序列的起止范围 summ Date local start = r(min) local end = r(max) // 仅显示年份标签(按年设置刻度,每年第1个周) tvgc Momentum supply, p(3) d(3) trend window(25) prefix(_) graph /// xtick(`start'(52)`end', labsize(small) labfmt(%Y)) // 显示年-月标签(按季度/每月调整间隔,示例为每4周) tvgc Momentum supply, p(3) d(3) trend window(25) prefix(_) graph /// xtick(`start'(4)`end', labsize(small) labfmt(%Ym))
注:(52)和(4)是刻度间隔,对应每年52周、每月约4周,可根据你的数据集时间跨度调整。
方法3:生成新的时间变量并重新绘图
如果上述方法都不生效,可生成仅包含年份或年-月的新时间变量,重新设置时间序列后绘图:
// 生成年份变量 gen year_date = year(Date) format year_date %Y tsset year_date, yearly // 或者生成年-月变量 gen ym_date = mofd(dofw(Date)) // 将周日期转为日,再转为年月格式 format ym_date %tm tsset ym_date, monthly // 重新运行tvgc命令(注意部分命令可能需要调整参数适配新的时间频率) tvgc Momentum supply, p(3) d(3) trend window(6) prefix(_) graph
注:此方法需根据新的时间频率调整tvgc的window等参数,比如月度数据可能将窗口设为6而非25。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

