如何让Stata图表在指定X轴数值后停止显示?
Stata强制X轴在特定数值处停止显示的解决方案
Stata的twoway绘图默认会自动扩展轴范围,以包含所有绘图元素的完整取值,因此单独设置xscale(range(0 7000))会被覆盖。以下两种方法可实现你的需求:
方法1:用noextend选项锁定轴范围
在xscale()中添加noextend参数,强制Stata不自动扩展轴范围来容纳超出设定值的元素。修改后代码如下:
sysuse auto2, clear gen mid = (price + weight)/2 gen n = _n twoway /// (rcap price weight n, horizontal) /// (scatter n mid), /// ylabel(, nolabels noticks nogrid) /// legend(off) /// xscale(range(0 7000) noextend) /// 新增noextend选项 xlabel(0(1000)7000)
执行后X轴会严格限定在0-7000区间,超出范围的绘图元素会被截断。
方法2:截断绘图变量的取值
提前将超出7000的变量值替换为7000,确保所有绘图元素都落在设定的轴范围内,轴范围自然不会被自动扩展:
sysuse auto2, clear gen mid = (price + weight)/2 gen n = _n // 截断超出7000的变量值 replace price = 7000 if price > 7000 replace weight = 7000 if weight > 7000 replace mid = 7000 if mid > 7000 twoway /// (rcap price weight n, horizontal) /// (scatter n mid), /// ylabel(, nolabels noticks nogrid) /// legend(off) /// xscale(range(0 7000)) /// xlabel(0(1000)7000)
内容的提问来源于stack exchange,提问作者bill999
相关产品推荐
相关产品推荐

