2013-05-31 9 views
60

vedo che posso trama in Python utilizzando:Qual è il modo consigliato di tracciare: matplotlib o pylab?

import matplotlib 
matplotlib.pyplot.plot(...) 

Oppure:

import pylab 
pylab.plot(...) 

Entrambi utilizzano lo stesso matplotlib codice di stampa.

Quindi, quale di questi la community di Python consiglia come il metodo migliore per tracciare? Perché?

+1

possibile duplicato di [Qual è la differenza tra pylab e pyplot?] (Http://stackoverflow.com/questions/11469336/what-is-the-difference-between-pylab-and-pyplot) – tacaswell

+8

Duplicazione autoreferenziale ? –

risposta

85

documentazione ufficiale: Matplotlib, pyplot and pylab: how are they related?

Entrambe queste importazioni si riducono non facendo esattamente la stessa cosa e verrà eseguito lo stesso codice esatto, si tratta solo di diversi modi di importare i moduli.

noti inoltre che matplotlib ha due strati di interfaccia, uno strato stato-macchina gestita pyplot e l'interfaccia OO pyplot è costruito in cima, vedere How can I attach a pyplot function to a figure instance?

pylab è un modo pulito per l'importazione bulk tutta una serie di funzioni utili (la funzione della macchina a stati pyplot, la maggior parte di numpy) in un singolo spazio dei nomi. Il motivo principale per cui esiste (a mio avviso) è di lavorare con ipython per creare una shell interattiva molto bella che replica più o meno MATLAB (per rendere la transizione più semplice e perché è buona per giocare). Vedere pylab.py e matplotlib/pylab.py

A un certo livello, questo è puramente una questione di gusto e dipende un po 'su quello che state facendo.

Se siete non incorporandoli in una gui (sia utilizzando un backend non interattiva per gli script di massa o utilizzando uno dei backend interattive fornite) la cosa tipica fare è

import matplotlib.pyplot as plt 
import numpy as np 

plt.plot(....) 

che doesn' t inquina lo spazio dei nomi. Preferisco questo, così posso tenere traccia di dove viene la roba.

Se si utilizza

ipython --pylab 

questo equivale a correre

from pylab import * 

Ora è consigliabile per le nuove versioni di ipython si utilizza

ipython --matplotlib 

che sarà istituito tutto i dettagli di sfondo appropriati per far funzionare i backend interattivi, bu t non importa nulla. Dovrai importare esplicitamente i moduli desiderati.

import numpy as np 
import matplotlib.pyplot as plt 

è un buon inizio.

Se si incorpora matplotlib in una GUI, non si desidera importare Pyplot in quanto ciò avvierà altri loop principali della GUI e esattamente ciò che si dovrebbe importare dipende esattamente da ciò che si sta facendo.

+14

La differenza tra pylab e pyplot è che il precedente importa numpy nel suo spazio dei nomi. Questo è stato per farlo comportarsi in modo più simile con MATLAB. L'uso di pyplot invece di pylab è preferito ora perché è più pulito. – ianalis

Problemi correlati