楼主: zdlspace
3231 4

[程序分享] 使用外挂指令labmask,解决xtline排序老大难问题 [推广有奖]

  • 1关注
  • 83粉丝

已卖:1037份资源

学科带头人

93%

还不是VIP/贵宾

-

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

楼主
zdlspace 学生认证  发表于 2021-1-8 00:05:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
很多人在问xtline画图时,究竟如何调整各个子图的位置,以达到自己预期的排序。下面举例说明,例子中我们希望最终图形排序是南京、北京、天津、上海。
案例数据:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input double id str6 city double(year gdp)
  4. 1 "南京" 1990 2
  5. 1 "南京" 1991 3
  6. 1 "南京" 1992 4
  7. 1 "南京" 1993 5
  8. 1 "南京" 1994 6
  9. 1 "南京" 1995 7
  10. 2 "北京" 1991 5
  11. 2 "北京" 1992 6
  12. 2 "北京" 1993 7
  13. 2 "北京" 1994 8
  14. 2 "北京" 1995 9
  15. 3 "天津" 1991 1
  16. 3 "天津" 1992 2
  17. 3 "天津" 1993 3
  18. 3 "天津" 1994 4
  19. 3 "天津" 1995 5
  20. 4 "上海" 1991 4
  21. 4 "上海" 1992 5
  22. 4 "上海" 1993 7
  23. 4 "上海" 1994 8
  24. 4 "上海" 1995 9
  25. end
复制代码



第一种方案:
  1. ****直接按id做xtline******
  2. xtset id year
  3. xtline gdp
复制代码

效果如下:
1610034868431.jpg
我们发现虽然图形顺序达到了我们的要求,但各子图标题为数值。
第二种方案:
  1. ****加i(city)选项******
  2. xtset id year
  3. xtline gdp,i(city) t(year)
复制代码

效果如下:
1610035179813.jpg
此方案虽然得到了子标题,但排序不是我们想要的,我们想要的顺序为南京、北京、天津、上海。
第三种方案:
  1. ****定义值标签******
  2. label define city_label 1 "南京" 2 "北京" 3 "天津" 4 "上海"     //如果城市名太多,可采用循环
  3. label values id city_label
  4. xtset id year
  5. xtline gdp
复制代码

最终效果如下:
1610035523454.jpg

第四种方案使用外挂指令labmask(极力推荐):
  1. ***使用labmask*******
  2. **ssc install labmask
  3. xtset id year
  4. labmask id,values(city)
  5. xtline gdp
复制代码

最终效果如下:

哇,终于得到了我们想要的图形顺序!这条命令应该是目前解决xtline排序最简洁的方案,请使用第四种方案,解决了困扰很多人的xtline排序问题。
如果你还有更简洁的方式,可以在下方留言讨论。如果您觉得有用的话,点个赞,评一下分,谢谢!

最后,如果我们希望将所有line画在一幅图里,该怎么办呢?方法很简单,只要加一个option选项即可。
  1. xtset id year
  2. labmask id,values(city)
  3. xtline gdp,ov scheme(s1color)
复制代码

效果如下:
1612164139748.jpg

二维码

扫码加我 拉你入群

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

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

关键词:line Lin TLI generated generate

1610345319280.jpg (56.03 KB)

1610345319280.jpg

回帖推荐

qianchen 发表于4楼  查看完整内容

这是最简单做法 sencode city,gen(id2) xtset id2 year xtline gdp
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论
chentibiao + 5 + 5 + 5 精彩帖子

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

Raymond
Stata 17.0, MP(4)

沙发
zdlspace 学生认证  发表于 2021-1-11 16:01:03
labmask是定义值标签的一个外挂指令。

藤椅
欣语xy 学生认证  发表于 2021-11-18 09:47:53
楼主,我的stata15安不上labmask
ssc install labmask
ssc install: "labmask" not found at SSC, type search labmask
(To find all packages at SSC that start with l, type ssc describe l)
请问楼主有遇到过这种情况嘛

板凳
qianchen 发表于 2021-11-18 11:44:58 来自手机
zdlspace 发表于 2021-1-8 00:05
很多人在问xtline画图时,究竟如何调整各个子图的位置,以达到自己预期的排序。下面举例说明,例子中我们希 ...
这是最简单做法<br>
sencode city,gen(id2)<br>
xtset id2 year<br>
xtline gdp

报纸
午睡硫酸铜 学生认证  发表于 2023-5-10 16:28:52
欣语xy 发表于 2021-11-18 09:47
楼主,我的stata15安不上labmask
ssc install labmask
ssc install: "labmask" not found at SSC, type ...
直接search labmask,然后根据指示在下方几个packages中选一个进去点击install就好了,我试了第一个gr0034 from http://www.stata-journal.com/software/sj8-2是可以安装的

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

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