如何在Stata绘图的右下角默认添加文本?
搞定Stata多幅散点图右下角加固定文本的问题
你之前用固定坐标加文本,因为各图轴范围不一样导致失效,其实改用相对百分比位置就能解决,不管轴怎么变,文本都能稳稳待在右下角。
最直接的方法:用百分比指定位置
在text()选项里用%来表示相对绘图区域的位置,比如text(5% 95% "XXXX")——第一个数是从底部往上的比例,第二个是从左往右的比例,这样不管坐标轴是1-100还是100-200,文本都会固定在靠近右下角的地方。
改好的示例代码:
clear all set obs 100 gen x = runiformint(1, 100) gen y = runiformint(100, 200) egen z = seq(), f(1) t(100) // x和z的散点图,右下角加文本 scatter x z, text(5% 95% "XXXX") // y和z的散点图,同样位置显示文本 scatter y z, text(5% 95% "XXXX")
微调位置的技巧
要是觉得位置不够准,还能搭配position()和offset()参数:position(6)专门对应右下角,offset()用来调文本和角落的距离,数值越大离得越远,比如:
scatter x z, text(0 0 "XXXX", position(6) offset(1))
批量处理50幅图的写法
要画50幅图的话,写个循环就不用重复敲代码了:
// 把这里的x y换成你要绘图的50个变量名 local varlist x y foreach var of local varlist { scatter `var' z, text(5% 95% "XXXX") title("`var' 与 z 的散点图") // 要是需要保存图,加这句:graph save "`var'_散点图.gph", replace }
这样不管每幅图的轴范围差多大,文本都能正常显示在右下角。
内容的提问来源于stack exchange,提问作者Luis M. García
相关产品推荐
相关产品推荐

