楼主: daydreamingII
5501 12

[作图问题求助] 在x轴上如何让日期变量显示为日期格式而非数值 [推广有奖]

  • 1关注
  • 0粉丝

已卖:1份资源

硕士生

14%

还不是VIP/贵宾

-

威望
0
论坛币
65 个
通用积分
25.9110
学术水平
6 点
热心指数
7 点
信用等级
3 点
经验
8477 点
帖子
80
精华
0
在线时间
144 小时
注册时间
2014-3-19
最后登录
2024-4-9

楼主
daydreamingII 发表于 2017-9-11 12:56:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
变量date类型是float,格式是%td,在数据库中显示如:22aug2017。
但是在画图时,date在x轴上显示的是对应的数值,如:21053。
我现在只能通过编辑变量标签来让date在x轴上显示成日期,但是一个一个编辑实在太慢了

请问如何让变量在x轴上直接显示为日期格式呢,非常感谢!

-----------------------------------------------
以下增加了数据和指令

----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str9 date int year byte(month day) float(date3 y)
  4. "2017.8.22" 2017 8 22 21053   2
  5. "2017.8.22" 2017 8 22 21053   3
  6. "2017.8.24" 2017 8 24 21055   4
  7. "2017.8.24" 2017 8 24 21055   5
  8. "2017.8.24" 2017 8 24 21055   6
  9. "2017.8.24" 2017 8 24 21055   7
  10. "2017.8.24" 2017 8 24 21055   8
  11. "2017.8.24" 2017 8 24 21055   9
  12. "2017.8.24" 2017 8 24 21055  10
  13. "2017.8.24" 2017 8 24 21055  11
  14. "2017.8.25" 2017 8 25 21056  12
  15. "2017.8.25" 2017 8 25 21056  13
  16. "2017.8.25" 2017 8 25 21056  14
  17. "2017.8.25" 2017 8 25 21056  15
  18. "2017.8.25" 2017 8 25 21056  16
  19. "2017.8.25" 2017 8 25 21056  17
  20. "2017.8.25" 2017 8 25 21056  18
  21. "2017.8.25" 2017 8 25 21056  19
  22. "2017.8.25" 2017 8 25 21056  20
  23. "2017.8.25" 2017 8 25 21056  21
  24. "2017.8.25" 2017 8 25 21056  22
  25. "2017.8.25" 2017 8 25 21056  23
  26. "2017.8.25" 2017 8 25 21056  24
  27. "2017.8.25" 2017 8 25 21056  25
  28. "2017.8.25" 2017 8 25 21056  26
  29. "2017.8.26" 2017 8 26 21057  27
  30. "2017.8.26" 2017 8 26 21057  28
  31. "2017.8.26" 2017 8 26 21057  29
  32. "2017.8.26" 2017 8 26 21057  30
  33. "2017.8.26" 2017 8 26 21057  31
  34. "2017.8.26" 2017 8 26 21057  32
  35. "2017.8.26" 2017 8 26 21057  33
  36. "2017.8.26" 2017 8 26 21057  34
  37. "2017.8.26" 2017 8 26 21057  35
  38. "2017.8.26" 2017 8 26 21057  36
  39. "2017.8.26" 2017 8 26 21057  37
  40. "2017.8.27" 2017 8 27 21058  38
  41. "2017.8.27" 2017 8 27 21058  39
  42. "2017.8.27" 2017 8 27 21058  40
  43. "2017.8.27" 2017 8 27 21058  41
  44. "2017.8.27" 2017 8 27 21058  42
  45. "2017.8.27" 2017 8 27 21058  43
  46. "2017.8.27" 2017 8 27 21058  44
  47. "2017.8.27" 2017 8 27 21058  45
  48. "2017.8.27" 2017 8 27 21058  46
  49. "2017.8.27" 2017 8 27 21058  47
  50. "2017.8.27" 2017 8 27 21058  48
  51. "2017.8.27" 2017 8 27 21058  49
  52. "2017.8.27" 2017 8 27 21058  50
  53. "2017.8.27" 2017 8 27 21058  51
  54. "2017.8.27" 2017 8 27 21058  52
  55. "2017.8.28" 2017 8 28 21059  53
  56. "2017.8.28" 2017 8 28 21059  54
  57. "2017.8.28" 2017 8 28 21059  55
  58. "2017.8.28" 2017 8 28 21059  56
  59. "2017.8.28" 2017 8 28 21059  57
  60. "2017.8.28" 2017 8 28 21059  58
  61. "2017.8.28" 2017 8 28 21059  59
  62. "2017.8.28" 2017 8 28 21059  60
  63. "2017.8.28" 2017 8 28 21059  61
  64. "2017.8.28" 2017 8 28 21059  62
  65. "2017.8.28" 2017 8 28 21059  63
  66. "2017.8.28" 2017 8 28 21059  64
  67. "2017.8.28" 2017 8 28 21059  65
  68. "2017.8.28" 2017 8 28 21059  66
  69. "2017.8.28" 2017 8 28 21059  67
  70. "2017.8.28" 2017 8 28 21059  68
  71. "2017.8.28" 2017 8 28 21059  69
  72. "2017.8.28" 2017 8 28 21059  70
  73. "2017.8.28" 2017 8 28 21059  71
  74. "2017.8.28" 2017 8 28 21059  72
  75. "2017.8.28" 2017 8 28 21059  73
  76. "2017.8.28" 2017 8 28 21059  74
  77. "2017.8.28" 2017 8 28 21059  75
  78. "2017.8.28" 2017 8 28 21059  76
  79. "2017.8.29" 2017 8 29 21060  77
  80. "2017.8.29" 2017 8 29 21060  78
  81. "2017.8.29" 2017 8 29 21060  79
  82. "2017.8.29" 2017 8 29 21060  80
  83. "2017.8.29" 2017 8 29 21060  81
  84. "2017.8.29" 2017 8 29 21060  82
  85. "2017.8.29" 2017 8 29 21060  83
  86. "2017.8.29" 2017 8 29 21060  84
  87. "2017.8.29" 2017 8 29 21060  85
  88. "2017.8.29" 2017 8 29 21060  86
  89. "2017.8.29" 2017 8 29 21060  87
  90. "2017.8.29" 2017 8 29 21060  88
  91. "2017.8.29" 2017 8 29 21060  89
  92. "2017.8.29" 2017 8 29 21060  90
  93. "2017.8.29" 2017 8 29 21060  91
  94. "2017.8.29" 2017 8 29 21060  92
  95. "2017.8.29" 2017 8 29 21060  93
  96. "2017.8.29" 2017 8 29 21060  94
  97. "2017.8.29" 2017 8 29 21060  95
  98. "2017.8.29" 2017 8 29 21060  96
  99. "2017.8.29" 2017 8 29 21060  97
  100. "2017.8.29" 2017 8 29 21060  98
  101. "2017.8.29" 2017 8 29 21060  99
  102. "2017.8.28" 2017 8 28 21059 100
  103. "2017.8.29" 2017 8 29 21060 101
  104. end
  105. format %td date3
复制代码
------------------ copy up to and including the previous line ------------------


生成date3的指令
gen year=substr(date,1,4)
gen month=substr(date,6,1)
gen day=substr(date,8,2)
destring year,replace
destring month,replace
destring day, replace
gen date3=mdy(month,day,year)
format date3 %td

画图的指令
graph box y, over(date3)

以下是数据库部分截图和箱图

javascript:;
javascript:;
二维码

扫码加我 拉你入群

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

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

关键词:日期变量 float date 非常感谢 ATE

test0913.png (4.59 KB)

箱图

箱图

test0913b.png (42.63 KB)

数据库部分截图

数据库部分截图

回帖推荐

黃河泉 发表于7楼  查看完整内容

Nick Cox 建议两种方法(第二种需要 ssc install stripplot)

沙发
黃河泉 在职认证  发表于 2017-9-11 14:59:55
尔后建議用 dataex (先 ssc install dataex 并见说明) 将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。并请参考 https://bbs.pinggu.org/thread-5048204-1-1.htmlhttps://bbs.pinggu.org/thread-5917273-1-1.html

藤椅
夏目贵志 发表于 2017-9-13 08:47:30
我这里没这个问题。把你用的具体命令也列出来吧。

板凳
daydreamingII 发表于 2017-9-13 15:03:44
黃河泉 发表于 2017-9-11 14:59
尔后建議用 dataex (先 ssc install dataex 并见说明) 将原始 Stata 资料中具有”代表性”的一部分资料列出 ...
恩好的,谢谢!

报纸
daydreamingII 发表于 2017-9-13 15:13:28
夏目贵志 发表于 2017-9-13 08:47
我这里没这个问题。把你用的具体命令也列出来吧。
您好,我新增了命令和图,求助帮我看下哪里出了问题,非常感谢!

地板
黃河泉 在职认证  发表于 2017-9-14 15:23:59
生成类似 date3 之简单指令为
  1. gen ymd = date(date,"YMD")
  2. format %td ymd
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
daydreamingII + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

7
黃河泉 在职认证  发表于 2017-9-14 15:25:24
Nick Cox 建议两种方法(第二种需要 ssc install stripplot)
  1. gen text = string(ymd, "%tdm_D")
  2. egen pos = group(ymd)
  3. labmask pos, values(text)
  4. // M1
  5. graph box y, over(pos)
  6. // M2
  7. stripplot y, over(pos) vertical centre box cumul cumprob xtitle("") xla(, tlc(none))
复制代码
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
txje + 2 + 2 + 2 热心帮助其他会员
daydreamingII + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

8
黃河泉 在职认证  发表于 2017-9-14 16:45:20
bar1-date.png
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
daydreamingII + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

9
黃河泉 在职认证  发表于 2017-9-14 16:45:48
bar2-date.png
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
daydreamingII + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

10
daydreamingII 发表于 2017-9-18 09:16:48
黃河泉 发表于 2017-9-14 15:25
Nick Cox 建议两种方法(第二种需要 ssc install stripplot)
谢谢黄老师! 详细解答了我的疑问,还介绍了第二种方法,我赶紧去学习下,真的非常感谢!

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

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