Voglio fare una legenda sul mio grafico, che è generata dalla funzione plot()
. La funzione originale legend()
genererà un elenco che ha solo 1 colonna. Come posso creare una legenda con 2 colonne?Come creare una legenda R con 2 colonne?
9
A
risposta
8
non riuscivo a trovare un modo per farlo all'interno di una singola chiamata a legend
per i grafici standard.
Ecco un'opzione, disegnando due legende separate: una con linee e punti, una con etichette. x.intersp
può essere utilizzato per regolare la distanza tra etichette e linee.
plot(cumsum(runif(n = 100)))
# draw legend with lines and point but without labels and box. x.intersp controls horizontal distance between lines
L = legend(x = 'bottom', legend = rep(NA,4), col=1:2, lty=c(1,1,2,2), ncol=2, bty='n', x.intersp=0.5, pch=c(1,2,1,2), inset=0.02)
# use position data of previous legend to draw legend with invisble lines and points but with labels and box. x.intersp controls distance between lines and labels
legend(x = L$rect$left, y = L$rect$top, legend = c('Group A', 'Group B'), col=rep(NA,2), lty=c(1,1), ncol=1, x.intersp = 3, bg = NA)
3
Controllare questo:
library(lattice)
myPCH <- 15:17
Data <- rnorm(50)
Index <- seq(length(Data))
xyplot(Data ~ Index,
pch = myPCH, col=1:2,
key = list(space = "right", adj=1,
text = list(c("a", "b", "c"), cex=1.5),
points = list(pch = myPCH),
points = list(pch = myPCH,col=2)))
+0
Penso che l'OP chieda una linea 2x2 + una stringa 2x1. –
+0
@Pascal Modificato la risposta – RUser
'ncol = 2' in' legend'? – Victorp
Ma ho bisogno di 1 sola etichetta di testo per riga –
@FelixChan Un'etichetta di testo per riga – RUser