2010-09-20 13 views
15

Sono appena iniziato con R e sto iniziando a iniziare a produrre grafici. Sono consapevole che ci sono almeno tre diversi pacchetti di plottaggio, quello standard, ggplot2 e reticolo.Relazione tra i pacchetti di stampa in R

Questi pacchetti sono complementari o coprono lo stesso terreno? Se sono complementari, quando li uso? Se coprono lo stesso terreno, quale dovrei io, come nuovo utente R, metto la mia energia nella padronanza?

risposta

23

Ci sono 4 sistemi di tracciamento. Vi sono standard, griglia, reticolo e ggplot2. Gli ultimi due sono sistemi di livello superiore costruiti sui primi due. Ognuno ha vantaggi e svantaggi.

La grafica standard offre un controllo assoluto sui grafici ed è ideale per creare una trama nel modo desiderato. Lattice è stato sviluppato per affrontare situazioni in cui si desiderano array di trame. È molto flessibile e può tracciare la maggior parte delle funzioni sui dati e su qualsiasi variabile. Se vuoi una funzione arbitraria applicata ai dati di ogni soggetto e presentata come una griglia di trame, reticolo è il tuo bambino. È costruito sulla griglia e quasi l'unico modo in cui chiunque utilizza il pacchetto della griglia.

L'ultimo, ggplot2, è sia un pacchetto grafico che una nuova filosofia nel campo del grafico. È basato su "The Grammar of Graphics" di Wilkinson e tenta di fare esattamente questo, generare una grammatica per la grafica. Si deve semplicemente imparare la sintassi di termini più alti di termini come geom (cosa si trama), stat (statistiche sui dati), sfaccettatura (pannelli individuali), e si possono costruire grafici molto complessi. Generalmente escono piuttosto bene, specialmente per la distribuzione elettronica. Sfortunatamente, il controllo preciso di ogni singolo dettaglio non è disponibile. Ci sono alcune cose che semplicemente non puoi regolare. Detto questo, molti sono giunti alla conclusione sana che è un piccolo prezzo da pagare per il modo semplice di descrivere i terreni di alta qualità.

Dai un'occhiata ad alcuni dei grafici di esempio e di default per ggplot2. Se ti attirano, ti suggerisco di iniziare da lì. Se puoi, prova a imparare a fare tutto attraverso il metodo grammaticale di base. Personalmente ritengo sia un errore che Hadley abbia le funzioni di convenienza come principale aiuto sul sito web. Sembra minare l'intero scopo di ggplot2. Una sintassi abbreviata viene presentata come l'interfaccia principale per l'aiuto, ma il libro è interamente dedicato alla filosofia e alla grammatica fondamentale.

(io dico che lo faccio, ma la maggior parte del mio tracciato nella grafica di base perché lo trovo divertente edificio ogni singolo componente dei grafici.)

+0

Quali dettagli, in particolare ti riferisci a quello che non può essere controllato con ggplot2? Sono d'accordo sul fatto che ci siano molte opzioni "nascoste", ma sicuramente ci sono. (theme_get(), ad esempio) –

+0

Suppongo di poterlo espandere ulteriormente ... C'è un livello in cui ggplot è ben documentato e utilizzato con il minimo controllo. Poi ce n'è un altro in cui c'è un po 'di più, una volta trovate molte delle opzioni nascoste ... e poi ci sono cose che non riesci a controllare come sfaccettature irregolari o la risoluzione e l'uniformità delle funzioni di levigatura (cosa succede se voglio riempire la parte superiore rosso e blu inferiore?). Non riesco davvero a elencare tutto ciò che non puoi controllare. Non sono sicuro se questo è cambiato, ma qualcosa di semplice come l'offset dell'etichetta dall'asse * era * impossibile. – John

+1

Detto questo, penso che gestisca il 95% + dei grafici meglio di quanto le persone potrebbero gestirli da soli e che questi sono problemi relativamente esoterici per molti. – John

7

I tre pacchetti sono in realtà tre diversi concetti di tracciamento. Il dispositivo di tracciamento standard va veloce se sai quello che stai facendo ed è - ai miei occhi - piuttosto intuitivo nel senso che tutti i comandi riguardano particolari elementi di un grafico (trama, titolo, asse, etichette, legenda, .. .). Questi grafici sono piuttosto flessibili nel layout e li trovo utili per la maggior parte dei grafici statistici standard e dei grafici 2D abbastanza semplici.

Lattice è un dispositivo di tracciamento basato su griglia e consente molta più flessibilità. Puoi fondamentalmente tracciare tutto ciò che vuoi, come mostrato nello R Graph Gallery. I grafici possono anche essere annotati. Lattice è - molto utile, ai miei occhi - molto utile per grafici high-end personalizzabili. Lo uso principalmente quando realizzo mappe a colori, visualizzazioni 3D e grafici combinati di diversi sottoinsiemi dei miei dati (ad esempio, nella costruzione del modello, per gli effetti dei diversi termini). Vedi anche Using lattice graphics in R.

ggplot2 è in realtà un tentativo di combinare il bene di entrambi i sistemi: si mantiene la maggior parte della flessibilità del reticolo, ma si lavora su oggetti grafici facilmente definiti come si fa con il disegno standard. L'output grafico è in generale di aspetto migliore rispetto alle impostazioni standard del pacchetto standard e con meno problemi rispetto al reticolo. Personalmente, ho solo poca esperienza con ggplot2, ma sembra decisamente promettente. Continuo a preferire il pacchetto grafico di base, ma questo probabilmente ha più a che fare con il fatto che sono abituato a quello. Vecchie scimmie e nuovi trucchi e tutto questo ...

Fondamentalmente, direi di andare con quello che ti senti più a tuo agio. Sicuramente imparerei almeno le basi del pacchetto standard, ma da lì credo che ggplot2 ti dia tutto ciò che ti serve se non stai andando nella grafica di alto profilo. Se vuoi davvero creare grafici complessi personalizzati, conoscere il reticolo può solo aiutarti. Altrimenti, gli altri due forniscono tutto ciò di cui hai bisogno e sono abbastanza dritti in uso.

+0

Grazie per la risposta in profondità. Solo una domanda: cosa intendi per "grafica di alto profilo"? – fmark

+0

Solo un termine per nominare i grafici complessi dall'aspetto fantasioso che si possono trovare nella Galleria di grafici, ad esempio. La mia scelta delle parole non è sempre la migliore, in quanto l'inglese non è la mia lingua madre. –

+0

Grazie per il chiarimento. – fmark

Problemi correlati