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

Graph 在Stata中,如何以编程方式指定相同的轴范围?,graph,stata,scatter-plot,Graph,Stata,Scatter Plot,我正试图控制斯塔塔一个散点图的轴线。考虑一个例子: sysuse auto twoway (scatter mpg turn), aspectratio(1) 我得到以下图表: 我希望两个轴的跨度相同。可通过以下方式手动实现: twoway (scatter mpg turn), aspectratio(1) yscale(r(10 50)) xscale(r(10 50)) 我现在的任务是生成一系列图形,这些图形将是DynamicLaTex文档的一部分,因此我想跳过手动调整比例的步骤。

我正试图控制斯塔塔一个散点图的轴线。考虑一个例子:

sysuse auto
twoway (scatter mpg turn), aspectratio(1)
我得到以下图表:

我希望两个轴的跨度相同。可通过以下方式手动实现:

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

我现在的任务是生成一系列图形,这些图形将是DynamicLaTex文档的一部分,因此我想跳过手动调整比例的步骤。我该如何实现这一点


我在考虑使用Stata的局部变量以某种方式从两个变量中获取最小值和最大值(我无法先验地说出哪个变量/轴的值最大/最小),但也许有更聪明的解决方案来解决这个问题?

让我们假设您提前知道正在绘制哪些变量,这里是
y
x

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') 
现在在调用
graph
时使用这些
local
s


这不是一般性的——例如,它不支持
if
in
限定符——但它可以变得更一般

抱歉,回复太晚-刚刚有机会测试您的解决方案。像一个魔咒一样工作(我应该说——一如既往)谢谢!