Vorrei modificare i tipi di linea inseguendo ggplot. Introduco quindi un'altra colonna nel data.frame df per rappresentare il tipo di linea, ma una volta convertito in un fattore il tipo di linea invece di "metodo" appare nella legenda ... (vedi prova 3).
Come posso ottenere "metodo" nella legenda? Alla fine mi piacerebbe poterlo fare
- scegli liberamente il tipo di linea,
- scegliere liberamente l'ordine in cui questi tipi di linea compaiono nella legenda e
- avere il "metodo" corrispondente mostrato come testo della legenda.
Ecco i miei tentativi:
require(ggplot2)
set.seed(1)
df <- data.frame(x=c(1:4, 2:5),
method=rep(c("a", "b"), each=4),
lt=rep(c(5,3), each=4),
value=rep(c(0,1), each=4)+runif(8))
## trial 1:
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(group=method, linetype=method))
# fine, but not the linetypes I would like to have
## trial 2:
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(group=method, linetype=lt))
# correct linetypes, but no legend
## trial 3:
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(group=method, linetype=as.factor(lt)))
# legend, but not the correct one (I would like to have the "group"ing
# variable "method" in the legend as in trial 1)
risposte:
16 per risposta № 1Uso method
come il linetype
, ma poi mappalo manualmente ai tipi di linee che desideri. Non è necessario introdurre un'altra variabile in questo modo.
ggplot(df, aes(x=x, y=value)) +
geom_point() +
geom_line(aes(linetype=method)) +
scale_linetype_manual(breaks=c("a","b"), values=c(5,3))