Jak napisano w tytule: Jak wykreślić legendę poza obszarem kreślenia przy użyciu podstawowej grafiki?
Myślałam o tym, aby się bawić layout
i stworzyć pustą fabułę, która zawierałaby tylko legendę, ale byłbym zainteresowany w sposób wykorzystujący tylko podstawowe funkcje wykresów i np. par(mar = )
Aby uzyskać trochę miejsca po prawej stronie fabuły na legendę.
Oto przykład:
plot(1:3, rnorm(3), pch = 1, lty = 1, type = "o", ylim=c(-2,2))
lines(1:3, rnorm(3), pch = 2, lty = 2, type="o")
legend(1,-1,c("group A", "group B"), pch = c(1,2), lty = c(1,2))
produkuje:
Ale jak już powiedziałem, chciałbym, aby legenda była poza obszarem kreślenia (np. Po prawej stronie wykresu / fabuły.
Odpowiedzi:
Być może potrzebujesz,
par(xpd=TRUE)
aby umożliwić rysowanie rzeczy poza obszarem fabuły. Więc jeśli wykonasz główną fabułębty='L'
, po prawej stronie będzie trochę miejsca na legendę. Zwykle zostanie to przycięte do obszaru fabuły, alepar(xpd=TRUE)
z niewielką korektą można uzyskać legendę tak daleko, jak to możliwe:źródło
par(xpd=NA)
ma jeszcze większą moc (tj. wykresy do większej liczby regionów).par
połączenie tuż przed legendą. W mojej fabule korzystałempar(new=T)
z kilku innych okazji i po prostu chciałem dodaćxpd
parametr w tym samym wywołaniu, co powoduje problemy.