我想限制散点图中显示的值的范围。
我试过以下代码:
sysuse auto
twoway scatter mpg price
twoway scatter mpg price, yscale(range(20 30)) xscale(range(3000 10000))
但是,Stata不遵守指定的限制。
有没有办法迫使Stata这样做?
有两种方法可以做到这一点,后者在这种情况下似乎是更好的解决方案。
1)您可以使用ylabel()
和xlabel()
选项:
twoway scatter mpg price, ylabel(20 30) xlabel(3000 10000)
有关详细信息,请参阅Stata Journal上的this article。
2)您可以使用inrange()
功能:
twoway scatter mpg price if inrange(mpg, 20, 30) & inrange(price, 3000, 10000)
查看有关此功能的Stata Journal上的Stata tip 39。
编辑:
尼克考克斯的评论
实质上,Stata graph
命令不会因为轴刻度选项指定数据范围的一部分而忽略数据。请参阅axis scale options
的帮助,其中明确指出range()
只能用于扩展图轴的范围。要省略数据,您需要if
(或等效地更改数据,以便将要省略的值更改为缺失 - 这不是特别好的做法,即使暂时或在数据副本上完成)。