Come posso ottenere una singola legenda che acquisisca sia il colore che la dimensione?ggplot2: una legenda con due proprietà visive derivate dalla variabile comune
Ho avuto l'impressione che una legenda comune sia l'impostazione predefinita se si utilizza una variabile comune, ma l'esempio seguente mostra che mi manca qualcosa.
library(ggplot2)
input <- as.data.frame(matrix(runif(60),nrow=20,ncol=3))
colnames(input) <- c("A","B","C")
p <- ggplot(input,aes(A,B,size=C,color=C)) + geom_point()
Grazie ad Arun per un commento che ha spinto questa modifica. Quindi, se si usa solo la dimensione (e si dimentica il colore) si ottiene una legenda che rappresenta tre dimensioni, ma nella trama sono rappresentate molte più dimensioni.
Quindi quello che sarebbe dopo è un comportamento simile - una leggenda che mostra alcuni valori della variabile comune e rappresenta le dimensioni e colori corrispondenti.
ti sembra di essere tramando l'estetica '' size' e color' come attributo continuo ('C' non è un' factor'). Come puoi combinare la leggenda quando non è discreta? prova 'ggplot (input, aes (A, B)) + geom_point (aes (size = factor (C), color = factor (C)))' (vedrai un'enorme leggenda combinata) – Arun
Grazie a @Arun. Le dimensioni e il colore sono entrambi continui. Apprezzo che la dimensione non possa avere una rappresentazione di legenda continua, e ho pensato che sarebbe bastata campionare la dimensione a intervalli, il che potrebbe consentire a dimensioni diverse di apparire nella trama che solo quelli nella legenda. –
@Arun: dopo tutto, lo fa già per le dimensioni: la legenda non mostra tutte le dimensioni che appaiono nel grafico. È irragionevole desiderare che un sottoinsieme della variabile comune appaia nella legenda, raffigurato con il colore e la dimensione corrispondenti? –