wzr_2011 发表于 2022-2-19 20:43 
楼主求问:如果纵坐标的数值是按比例增大的,如10、100、1000依次,同时仍需要将各刻度间间隔保持相等,如 ...
没想出来简单的画图调整的办法,我目前能想到的办法是生成一个可以等比例画图的辅助变量,用它画图再用原数值贴标签显示在纵轴。
如果是如你举例的形式是指数增长,我以2的指数增长为例:
set obs 50
gen x=_n
gen y=_n
gen z=2^y
变量z就是你说的按比例增大的原变量,把z化为可以等比例画图的变量y
定义一个标签规则a:(含义就是把需要显示的坐标轴标签的指数和幂对应起来)
label define a 5"32" 10"1024" 15"32768" 20"1048576"
(这个标签替换应该只能一个一个手动对应,所以需要替换的多的话会很繁琐)
然后把标签规则a赋给变量y,这时候在data browser能看到y的数值变成蓝色并且被赋标签的数值已经变为标签
label values y a
这时画图,并且控制纵坐标只显示我们替换了标签的几个数值,出来的就是你想要的样子:
tw (scatter y x, ylabel(0(5)20,valuelabel))