2013-10-14 321 views
7

我无法正确设置图例的位置,我试图与xjustncol一起玩,但它仍然出现在图形的中间。R:图例中的图例和线条的长度的定位

你能帮助它将它对齐到边界吗(左边还是右边我不在乎)?

此外,有可能在图例中绘制较短的线条?这些显得太长了。

par(mar=c(5,4,4,5)+.1) 
plot(1:109,rnorm(109), type="l",col="blue", lwd=2, 
     main="Compare signal and std deviation MC3 ch44", 
     ylab="signal", xlab="locations") 
par(new=TRUE) 
plot(1:109, rnorm(109), ylab="",xlab="", type="l", 
     col="red",xaxt="n",yaxt="n", lwd=2) 
axis(4) 
mtext("std. deviation",side=4,line=3) 
legend("topright",col=c("blue", "red"), lwd=2, 
     legend=c("signal","std dev"), cex=0.85, bty="n", xjust=1) 
+1

当我运行你的代码时,它出现在右上角。也许开始一个干净的R会话,然后再试一次。 – Thomas

+0

放大R-Studio显示它比在.pdf中导出后更集中,可能是由于图的比例因子(?)但是是否可以在图例中绘制较短的一行?无法在任何地方找到该选项。 – Irene

+1

尝试'legend'中的'seg.len'参数。 – Henrik

回答

6

作为重启R对话,并使用

legend("topright",col=c("blue", "red"), lwd=2, 
legend=c("signal","std dev"), cex=0.85, bty="n", xjust=1, seg.len=0.5) 

解决了我的问题的评论中指出。

+2

如果您在绘图后更改绘图窗口大小,传奇和文本通常会显示在“错误”的位置。如果您想要特定的宽高比,最好先设置窗口大小。例如。 'dev.new(宽度= 3,高度= 9)' –