在Stata中,如何以编程方式指定相同的轴范围?

时间:2013-11-29 16:26:07

标签: graph stata scatter-plot

我正试图控制Stata中散点图的轴。考虑一个例子:

sysuse auto
twoway (scatter mpg turn), aspectratio(1)

我得到以下图表:

enter image description here

我希望两个轴都跨越相同的范围。手动这可以通过以下方式实现:

twoway (scatter mpg turn), aspectratio(1) yscale(r(10 50)) xscale(r(10 50))

enter image description here

我的任务是生成一系列图表,这些图表将成为动态LaTeX文档的一部分,因此我想跳过手动调整比例的步骤。我怎么能实现呢?

我正在考虑使用Stata的本地人以某种方式从两个变量中获取最小值和最大值(我不能先验地知道哪个变量/轴具有最大值/最小值)但是可能有一个更智能的解决方案来解决这个问题?

1 个答案:

答案 0 :(得分:2)

我们假设您事先知道您正在绘制哪些变量,yx

local myvars "y x" 
tokenize `myvars' 
args myy myx 
su `myy', meanonly 
local min = r(min) 
local max = r(max) 
su `myx', meanonly 
local min = min(r(min), `min') 
local max = max(r(max), `max') 

现在在local的通话中使用这些graph

这不是一般的 - 例如,它不支持ifin限定符 - 但它可以更通用。