我想限制散点图中显示的值的范围。
我尝试了以下代码:
sysuse auto
twoway scatter mpg price
twoway scatter mpg price, yscale(range(20 30)) xscale(range(3000 10000))
但是,Stata不遵守指定的限制。
有没有办法迫使Stata这样做?
答案 0 :(得分:2)
有两种方法可以执行此操作,在这种情况下,后者似乎是更好的解决方案。
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 tip 39 在Stata Journal上有关此功能的信息。
编辑:
尼克·考克斯的评论
本质上,Stata graph
命令不会仅仅因为轴比例选项指定了数据范围的一部分而忽略数据。请参阅axis scale options
的帮助,其中明确指出range()
仅可用于扩展图形轴的范围。要省略数据,您需要if
(或等效地更改数据,以便将要忽略的值更改为丢失-即使临时完成或在数据副本上进行操作,这也不是很好的习惯) 。