楼主: zdlspace
3316 2

[stata资源分享] 以日期画垂直线 [推广有奖]

  • 1关注
  • 83粉丝

已卖:1037份资源

学科带头人

93%

还不是VIP/贵宾

-

威望
2
论坛币
5234 个
通用积分
8133.7812
学术水平
520 点
热心指数
536 点
信用等级
509 点
经验
52340 点
帖子
1681
精华
0
在线时间
2717 小时
注册时间
2013-7-21
最后登录
2025-11-22

楼主
zdlspace 学生认证  发表于 2021-6-19 00:16:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在我们花时间序列图时,经常会遇到x轴为日期,想要在某个日期画一条垂直于x轴的直线,此时会遇到一个问题,那就是x轴对应的是日期,比如01jan2001,我们该如何写xline选项呢?
有两种做法,第一种是将日期转为为数值,
  1. * Example generated by -dataex-. For more info, type help dataex
  2. clear
  3. input double(y date)
  4. 1 14976
  5. 2 15707
  6. 3 17170
  7. 4 17905
  8. 5 18281
  9. end
  10. format %td date

  11. gen d=date  //生成数值型日期,我们去查找一下04jan2007对应的数值
  12. line y date,xline(17170)  //想要在04jan2007处画一条直线,查出来该日期对应的数值是17170
复制代码



另一种简单的做法,不用生成数值型日期,
  1. line y date,xline(`=td(04jan2007)')    //直接引用你想要画垂线的日期,此方法最为简洁,不必去数据中查找对应数值
复制代码

1624032547877.jpg

初学者经常会疑惑xline()里面填写的数值到底是什么?怎么来的?实际上就是第一种做法。看完这个帖子,你再也不用去查找日期对应的数值了,直接`=td(01jan2007)'就好啦
此外,你也可以在某个月份画垂直线,
  1. convdate m month=date
  2. line y month,xline(`=tm(2007m1)')
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:generated generate example double format

Raymond
Stata 17.0, MP(4)

沙发
雄博士 发表于 2022-5-1 17:51:29 来自手机
zdlspace 发表于 2021-6-19 00:16
在我们花时间序列图时,经常会遇到x轴为日期,想要在某个日期画一条垂直于x轴的直线,此时会遇到一个问题, ...
太棒了,一直在寻找第二种方法,感谢分享。老铁。顶你。

藤椅
jigongbao6 学生认证  发表于 2023-6-24 14:39:20
太好了!!终于知道要怎么画了!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-8 13:47