2009-11-02 11 views
11

Realizzo regolarmente figure (il tipo di analisi dei dati esplorativi) in R. Programmo anche in Python e mi chiedevo se ci sono caratteristiche o concetti in matplotlib che varrebbe la pena di essere appresi. Per esempio, sono abbastanza soddisfatto di R - ma la sua funzione image() produrrà file di grandi dimensioni con output pixelato, mentre la figura equivalente di Matlab (anch'io programma regolarmente in Matlab) sembra gestibile in dimensioni di file e anche 'lisciata' - fa matplotlib fornisce anche tali riduzioni ...? Ma più in generale, mi chiedo quali altri vantaggi potrebbe conferire matplotlib. Non intendo che questa sia una domanda da trollare. Grazie.matplotlib per utente R?

+1

dare un'occhiata a questa domanda simile: http://stackoverflow.com/questions/1177019/what-can-be-done-in-r-that-cant-be-done-with-python-numpy-scipy – dalloliogm

+1

Mi rendo conto che questa è una domanda vecchia, ma per i nuovi visitatori: basta usare [ggplot2] (http://ggplot2.org/). Ha una curva di apprendimento ripida, ma [ottimi documenti] (http://docs.ggplot2.org/current/), e produce di solito trame migliori rispetto a matplotlib. – naught101

risposta

11

Questa è una domanda difficile a cui rispondere.

Ho recentemente passato alcuni dei miei grafica del carico di lavoro da R a matplotlib. A mio modesto parere, trovo i grafici di matplotlib più belli (colori predefiniti migliori, appaiono più nitidi e moderni). Penso anche che matplotlib rende i PNG molto meglio.

La vera motivazione per me, però, era che volevo lavorare con i miei dati sottostanti in Python (e numpy) e non R. Penso che questa sia la grande domanda da porre, in quale lingua vuoi caricare, analizzare e manipolare i dati?

D'altra parte, un bonus per R è che i valori di default di tracciato solo di lavoro (c'è una funzione per tutto). Mi trovo spesso a scavare nei documenti matplotlib (sono spessi) cercando un modo oscuro per regolare un bordo o aumentare lo spessore di una linea. Le routine di stampa di R hanno una certa maturità alle spalle.

+0

Grazie per i tuoi pensieri ... Faccio tracciare anche in Matlab quindi ho pensato che potesse essere una transizione facile, ma posso creare la maggior parte della grafica che posso immaginare in R (specialmente con la grafica a griglia) quindi suppongo che rimarrò matplotlib - Ho dimenticato che ci sono dettagli nella personalizzazione per imparare in ogni pacchetto e che sarebbe un momento inaspettato per il momento ... – hatmatrix

3

Penso che il più grande vantaggio è che matplotlib si basa su Python, che si dice che già sai. Quindi, questa è una lingua in meno da imparare. Passa solo il tempo a padroneggiare Python, e potrai trarne vantaggio sia direttamente per l'attività di tracciamento sia indirettamente per le altre tue esigenze Python.

Inoltre, IMHO Python è un linguaggio complesso più ricco di R, con molte più librerie che possono aiutare per vari compiti. Devi accedere ai dati per la stampa e i dati sono disponibili in molte forme. In ogni caso, sono sicuro che Python abbia una libreria efficiente per questo.

E che ne dite di incorporare quei complotti nei programmi più completi, dicono semplice GUI? matplotlib si collega facilmente con le librerie GUI di Python (come PyQT) e puoi creare cose che solo la tua immaginazione limita.

+0

Grazie per i tuoi pensieri - nonostante Python sia più ricco di R, sono più a mio agio con R per molti aspetti : la sua lista built-in può anche essere un dizionario ordinato, creazione rapida di ambienti temporanei (namespace) per il calcolo locale, potenti funzioni anonime ... la creazione della GUI è un '+' per Python - Io lo uso con i grafici generati da Matlab + PIL a volte ma faccio anche semplici GUI in R per analisi interattive. – hatmatrix

+1

Si potrebbe provare a chiamare R da Python. Potresti usare RPy, ma quello che faccio di solito è scrivere il codice R su un file e poi eseguire R come processo in modalità batch, salvando i risultati su disco e poi riprendendo da Python. Funziona alla grande. – telliott99