Qual è il modo consigliato per tracciare: matplotlib o pylab? [chiuso]


88

Vedo che posso tracciare in Python usando:

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

O:

import pylab
pylab.plot(...)

Entrambi usano lo stesso codice di stampa matplotlib .

Quindi, quale di questi sono attualmente consigliati dagli sviluppatori / documenti di Matplotlib come metodo migliore per tracciare? Perché?



9
Duplicazione autoreferenziale?
Mad Physicist

4
Questo non dovrebbe essere chiuso in quanto basato sull'opinione. Ora c'è una risposta chiara dai documenti di Matplotlib: Usa semprematplotlib.pyplot
Bernhard

Risposte:


104

Documenti ufficiali: Matplotlib, pyplot e pylab: come sono correlati?

Entrambe queste importazioni si riducono a fare esattamente la stessa cosa ed eseguiranno lo stesso identico codice, sono solo modi diversi di importare i moduli.

Si noti inoltre che matplotlibha due livelli di interfaccia, un livello macchina a stati gestito da pyplote l'interfaccia OO pyplotè costruita sopra, vedere Come posso collegare una funzione pyplot a un'istanza di figura?

pylabè un modo semplice per importare in blocco un'intera sfilza di funzioni utili (la funzione della pyplotmacchina a stati, la maggior parte numpy) in un unico spazio dei nomi. Il motivo principale per cui questo esiste (per quanto ne so) è lavorare ipythonper creare una shell interattiva molto bella che replichi più o meno MATLAB (per rendere la transizione più facile e perché è utile per giocare). Vedi pylab.pyematplotlib/pylab.py

A un certo livello, questo è puramente una questione di gusti e dipende un po 'da quello che stai facendo.

Se si , non incorporando in una GUI (o usando un backend non interattiva per gli script di massa o utilizzando uno dei backend interattive fornite) la cosa da fare è tipico

import matplotlib.pyplot as plt
import numpy as np

plt.plot(....)

che non inquina lo spazio dei nomi. Lo preferisco così posso tenere traccia della provenienza delle cose.

Se usi

ipython --pylab

questo equivale a correre

from pylab import * 

Ora è consigliabile che per le nuove versioni di ipythonutilizzare

ipython --matplotlib

che imposterà tutti i dettagli di sfondo appropriati per far funzionare bene i backend interattivi, ma non importerà nulla in blocco. Dovrai importare esplicitamente i moduli desiderati.

import numpy as np
import matplotlib.pyplot as plt

è un buon inizio.

Se stai incorporando matplotlibin una gui non vuoi importare pyplot in quanto ciò avvierà loop principali della gui extra, ed esattamente ciò che dovresti importare dipende esattamente da ciò che stai facendo.


19
La differenza tra pylab e pyplot è che il primo importa numpy nel suo spazio dei nomi. Questo per farlo comportare in modo più simile con Matlab. L'uso di pyplot invece di pylab è preferito ora perché è più pulito.
Christian Alis

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.