You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:50:17