如何在 Stata 绘图中自定义文本旋转角度?

如何在 Stata 绘图中自定义文本旋转角度?

在进入今天的正题之前,我们可以简单了解一下 Stata 绘图的文本添加:

上图中分别使用了 Stata 官方给定的文本的四个旋转角度。
绘图代码为:

1
2
3
4
5
6
7
8
clear all 
tw ///
scatteri 10000 -1.9 "各种角度的文本", mlabsize(small) pstyle(p1) msymbol(none) ||, ///
text(17500 -6 "这是一个水平文本", orient(horizontal)) ///
text( 5000 -6 "这是一个竖直文本", orient(vertical)) ///
text( 2500 6 "这是一个反向水平文本", orient(rhorizontal)) ///
text(15000 6 "这是一个反向竖直文本", orient(rvertical)) ///
xla(-10(2)10) yla(0(2500)20000) yti(, orient(horizontal))

也就是说 text()选项中的 orient()选项只有四种旋转——horizontal/rhorizontal/vertical/rvertical。那么当我们需要其它角度的时候该怎么办呢?
经过多次尝试,我发现可以这样:
首先在 Stata 里面运行 sysdir 命令:

1
2
3
4
5
6
7
. sysdir
STATA: /Applications/Stata/
BASE: /Applications/Stata/ado/base/
SITE: /Applications/Stata/ado/site/
PLUS: /Users/mr.cheng/Library/Application Support/Stata/ado/plus/
PERSONAL: /Users/mr.cheng/Library/Application Support/Stata/ado/personal/
OLDPLACE: ~/ado/

然后按照提示打开 BASE 文件夹,然后再打开 BASE 文件夹中的 style 文件夹,这个文件夹里面里面有这四个文件:

正是控制文本选项旋转角度的四个文件。而且都是二进制文件,意味着可以用记事本之类的东西打开。
例如我们打开控制我们最不常用的 rhorizontal 方向的 style 文件,里面的内容是这样的:

1
2
3
4
*! version 1.0.0  22dec2002
sequence 1400

set val 180

180 度正好是反向水平,所以我们只要把 180 改成自己想要的角度即可,我们就可以新建一个 style 文件,例如命名为:tb_orientstyle-mydegree.style,里面的内容如下:

1
2
sequence 1500
set val 45

然后使用mydegree作为 orient()选项的参数:

1
2
3
4
5
6
7
8
clear all 
tw ///
scatteri 10000 -1.9 "各种角度的文本", mlabsize(small) pstyle(p1) msymbol(none) ||, ///
text(17500 -6 "这是一个水平文本", orient(horizontal)) ///
text( 5000 -6 "这是一个竖直文本", orient(vertical)) ///
text( 2500 6 "这是一个反向水平文本", orient(rhorizontal)) ///
text(15000 6 "这是一个反向竖直文本", orient(mydegree)) ///
xla(-10(2)10) yla(0(2500)20000) yti(, orient(horizontal))

右上角的文本已经变成旋转 45 度的文本了!

不过由于这个参数并不是默认参数,所以会提示错误,不过不用管它就可以了。

# Stata

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×