2012-06-22 7 views
8

Sto stampando 15 righe utilizzando ggplot (nome pacchetto: ggplot2), ognuna rappresentante un'entità separata e desidera creare una legenda per lo stesso. Tuttavia, non sono in grado di dividere le voci della legenda in più di una colonna. Qualcuno può suggerire come fare lo stesso nell'ambiente ggplot.creazione di colonne all'interno di un elenco di legende durante l'utilizzo di ggplot nel codice R

Attualmente, sto usando il seguente comando per creare leggenda:

opts(title=plotName,legend.position='bottom') 

Tuttavia, questo dà una leggenda una colonna. Di conseguenza, una grande area del grafico viene presa dalla legenda stessa. Dividendolo in 2 o 3 colonne sarebbe davvero d'aiuto la causa mantenendo la legenda in fondo al grafico. Ho anche provato legend.direction ma questo comando visualizza la legenda in una riga che non è desiderabile a meno che non possa diffonderlo su 2-3 righe.

opts(title=plotName,legend.position='bottom',legend.direction="horizontal") 

Grazie in anticipo, Munish

risposta

8

È possibile utilizzare guide_legend() per controllare il layout e l'aspetto di leggende ggplot. In particolare, prende gli argomenti nrow e ncol, che sono ciò che stai cercando.

Ecco un esempio tratto dalla sezione 2 del documento molto utile Changes and additions to ggplot2-0.9.0.pdf.

library(ggplot2) 

q <- ggplot(diamonds, aes(x = table, fill = clarity)) + 
    geom_histogram() + 
    scale_y_continuous() 

q + guides(fill = guide_legend(nrow = 4, title.hjust = 0.4, 
     title.theme = theme_text(size = 12, face = "bold"))) + 
xlim(45, 75) 
11

Utilizzando il nuovo ambiente temi di ggplot richiede solo un semplice: + guides(col=guide_legend(ncol=2)) per formattare il leggenda in 2 colonne.

Problemi correlati