base :: plot - 我可以检索绘制的纵横比吗?

时间:2014-01-21 16:28:27

标签: r plot

我知道我可以在绘图时指定纵横比,例如plot(x,y,asp=5)。有没有办法在允许自动缩放后检索宽高比(如在plot(x,y)中)?我问的原因是我正在玩text(x,y,'mystring',srt=local_slope),我根据基础曲线和感兴趣的local_slope值计算x。麻烦的是,对于asp!=1,这会使文本以与我绘制的数据集的显示斜率不同的角度旋转。样品:

x<- -10:10
y<- x^2
plot(x,y,t='l',asp=0.1) 
# the slope at x=1 is 2 but the default plot aspect ratio is far from 1:1
text(1,1,'foo',srt= 180/pi*atan(2) )  #ugly-looking
text(-1,1,'bar',srt= (180/pi*atan(2/10))) #better

1 个答案:

答案 0 :(得分:7)

x<- -10:10
y<- x^2
plot(x,y,t='l',asp=0.1) 
### the slope at x=1 is 2 but the default plot aspect ratio is far from 1:1
text(1,1,'foo',srt= 180/pi*atan(2) )  #ugly-looking
text(-1,1,'bar',srt= (180/pi*atan(2/10))) #better

以英寸为单位获取绘图区域的宽度和高度......

ff <- par("pin")
ff[2]/ff[1]  ## 1.00299

现在手动调整图表的大小...

ff <- par("pin")
ff[2]/ff[1]  ## 0.38

您还可以使用par("usr")来调整宽高比 在用户单位,但我没有想出相当的权利 一组比率...... MASS::eqscplot的胆量也可能具有启发性。