2015-03-31 67 views
1

enter image description hereR中的图例框的区域控制R

这里附上一张图片,其中图例框位于绘图区域之外。如何根据x方向控制图例框?这里我用下面的代码来创建传说:

par(xpd=TRUE) 
legend(x=16.8,y=2600,legend=c("North","East","West","North_East","North_West","East_West"), 
lwd=2,col=c("red", "blue", "green","black","pink","Orange")) 

x=16.8意味着图例框将从这里开始。我可以在x方向上设置图例的结束点吗?请帮助我在图中绘制一个图例框。

+1

回顾'传说中的'x.intersp'参数()',它会帮助使传说不一样宽。至于沿x轴控制图例,还请查看'inset'参数。 – ccapizzano 2015-03-31 01:45:13

+0

感谢您的评论。使用x.intersp - 我可以控制图例框中线和文本之间的距离。我也尝试y.intersp - 我可以控制在Y轴方向的两个传说的文本之间的距离。 现在的问题是如何降低一个传奇禁区线长度,使整体框将在地块。我期待更多关于插图的帮助。 – 2015-03-31 11:30:07

+0

如果我想在分裂我的文字两行,那么我应该有什么关系? – 2015-03-31 12:04:11

回答

0

要解决你的问题,你必须知道你的legend有多大和修复X轴范围相应。要做到这一点,你需要绘制一个空的图和空的图例,并将图例分配给一个对象。这样,您就可以访问图例的尺寸。然后,您重绘自定义的X轴范围与xlim情节。

#Generate data 
x <- seq(0,22,length=1000) 
y <- dnorm(x,mean=10, sd=0.5)*4000 

#Plot empty plot, get legend size 
par(xpd=TRUE) 
plot(x,y, type="n", axes=F, xlab="", ylab="") 
my.legend.data <-legend(x=16.8,y=2600,legend=c("North","East","West","North_East","North_West","East_West"), 
lwd=2,col=c("red", "blue", "green","black","pink","Orange"), plot=FALSE) 

#plot chart with custom xlim that will fit legend 
my.x.range <-c(min(x),my.legend.data$rect$left+my.legend.data$rect$w) 
plot(x,y, type="l", lwd=1, xlim=my.x.range) 
legend(x=16.8,y=2600,legend=c("North","East","West","North_East","North_West","East_West"), 
lwd=2,col=c("red", "blue", "green","black","pink","Orange")) 

enter image description here