【问题标题】:In Stata, how can I programmatically specify the same ranges of axes?在 Stata 中,如何以编程方式指定相同的轴范围?
【发布时间】:2013-11-29 16:26:06
【问题描述】:

我正在尝试控制 Stata 中散点图的轴。举个例子:

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

我得到以下图表:

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

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

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

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

【问题讨论】:

    标签: graph stata scatter-plot


    【解决方案1】:

    假设您事先知道要绘制哪些变量,此处为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') 
    

    现在在您呼叫graph 时使用那些locals。

    这不是通用的——例如,它不支持ifin 限定符——但它可以变得更通用。

    【讨论】:

    • 抱歉回复晚了 - 刚刚有机会测试您的解决方案。作为一个魅力工作(我应该说 - 一如既往;)谢谢!
    猜你喜欢
    • 2022-09-28
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    相关资源
    最近更新 更多