2013-10-14 5 views
7

Ich kann die Position der Legende nicht richtig einstellen, ich habe versucht, mit xjust und ncol herumzuspielen, aber es erscheint immer noch in der Mitte der Grafik.R: Positionierung der Legende und Länge der Zeilen in der Legende

Können Sie helfen, es an der Grenze auszurichten (links oder rechts ist mir egal)?

Außerdem ist es möglich, kürzere Linien in der Legende zu zeichnen? Diese erscheinen zu lang.

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

Es erscheint in der oberen rechten Ecke, wenn ich Ihren Code ausführen. Vielleicht starte eine saubere R-Sitzung und versuche es erneut. – Thomas

+0

Zooming in R-Studio zeigt es viel mehr zentriert als nach dem Export in PDF, wahrscheinlich aufgrund der Skalierung des Plots (?) Aber ist es möglich, eine kürzere Linie in der Legende zu plotten? Die Option kann nirgendwo gefunden werden. – Irene

+1

Probieren Sie das 'seg.len' Argument in' legende'. – Henrik

Antwort

6

Wie bereits in den Kommentaren aus einer R-Sitzung neu zu starten und mit

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

meine Probleme gelöst.

+2

Es ist oft richtig, dass Legenden und Text an der "falschen Stelle" angezeigt werden, wenn Sie die Plot-Fenstergröße nach dem Plotten ändern. Am besten stellen Sie die Fenstergröße zuerst ein, wenn Sie ein bestimmtes Seitenverhältnis wünschen. Z.B. 'dev.new (width = 3, height = 9)' ' –

Verwandte Themen