2011-11-08 15 views
5

Sono curioso di sapere se è possibile modificare il layout della legenda ggplot senza dover riscrivere la funzione build_legend?Modifica il layout della legenda ggplot

Ad esempio:

Voglio un layout 2 * 2

a b
c d

piuttosto che il normale 1 * 4 o 4 * 1 layout.

un b c d

o

un
b
c
d

Molte grazie,

MK

+1

Si prega di non attraversare la posta - spreca tempo per le persone rispondendo alle domande che potrebbero avere già avuto risposta altrove. – hadley

+0

Grazie Hadley, ho pensato che fosse limitato solo tra le mailing list. – MKao

+0

Stavo per rispondere alla mia stessa domanda (con la soluzione di Kohske e crediti a lui) in modo che altre persone che non sono sulla mailing list possono vederlo, ma c'era una limitazione di tempo su quando potevo rispondere alla mia domanda in modo da non poter pubblicare esso. – MKao

risposta

3

Io in realtà non credo che questo è possibile con ggplot2, davvero hanno solo due opzioni: orizzontale o verticale. Se vuoi creare qualcosa di più creativo, dovresti farlo tu stesso creando una sottotrama con la stessa combinazione di colori, ridimensionandola e sovrapponendola alla trama (immagino qualcosa di simile a un piccolo facet_grid() posizionato ovunque possa essere appropriato).

... + opts(legend.direction="horizontal") 
... + opts(legend.direction="vertical") 
0

Kohske ha pubblicato la soluzione al problema, anche se non sarà disponibile fino alla prossima versione di ggplot.

qplot(1:4, 1:4, colour = letters[1:4]) + guides(colour = guide_legend(nrow = 2, byrow = T)) 
+0

Link alla risposta di Kohske alla tua stessa domanda nell'elenco ggplot2: http://groups.google.com/group/ggplot2/msg/4a8b39ff690eaf48 –

+0

Grazie a competent_tech e Brian per la modifica e i collegamenti. Farò del mio meglio per mantenere i miei codici e il mio formato allo standard. Saluti, – MKao

Problemi correlati