2013-05-31 9 views
60

widzę, że mogę działkę w Python przy użyciu:Jaki jest zalecany sposób wydruku: matplotlib lub pylab?

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

Lub:

import pylab 
pylab.plot(...) 

Oba korzystają z tego samego matplotlib kreślenia kodu.

A więc, która z nich zaleca społeczności Pythona jako lepszą metodę do wykreślenia? Czemu?

+1

możliwy duplikat [Jaka jest różnica między pylab a pyplot?] (Http://stackoverflow.com/questions/11469336/what-is-the-difference-between-pylab-and-pyplot) – tacaswell

+8

Samozwańcza duplikacja ? –

Odpowiedz

85

oficjalne docs: Matplotlib, pyplot and pylab: how are they related?

Oba te importu sprowadzają się nie robi dokładnie to samo i będzie działał dokładnie ten sam kod, to tylko różne sposoby importowania modułów.

Należy również pamiętać, że matplotlib ma dwie warstwy interfejsu, warstwa najnowocześniejsze maszyny zarządzanej przez pyplot oraz interfejs OO pyplot jest zbudowany na szczycie, zob How can I attach a pyplot function to a figure instance?

pylab jest czysty sposób do importu zbiorczego całe mnóstwo pomocne funkcje (funkcja maszyny stanu pyplot, większość z numpy) w pojedynczą przestrzeń nazw. Głównym powodem tego jest (do mojego zrozumienia) jest praca z ipython, aby stworzyć bardzo ładną interaktywną powłokę, która bardziej lub mniej replikuje MATLAB (aby ułatwić przejście i jest dobry do zabawy). Zobacz pylab.py i matplotlib/pylab.py

Na pewnym poziomie, to czysto kwestia gustu i zależy trochę od tego, co robisz.

Jeśli jesteś nie osadzania w GUI (przy użyciu nieinteraktywny backend skryptów luzem lub przy użyciu jednego z dostarczonych interaktywnych backendów) typową rzeczą do zrobienia jest

import matplotlib.pyplot as plt 
import numpy as np 

plt.plot(....) 

który robi” t zanieczyszcza przestrzeń nazw. Wolę to, więc mogę śledzić skąd pochodzą.

Jeśli używasz

ipython --pylab 

jest to równoznaczne z prowadzeniem

from pylab import * 

Obecnie zaleca się, aby do nowych wersji ipython użyć

ipython --matplotlib 

który ustanowi wszystko odpowiednie szczegóły tła, aby interaktywne backendy działały ładnie, bu t nie importuje niczego zbiorczego. Będziesz musiał jawnie zaimportować żądane moduły.

import numpy as np 
import matplotlib.pyplot as plt 

to dobry początek.

Jeśli osadzasz matplotlib w gui, nie chcesz importować Pyplota, ponieważ spowoduje to uruchomienie dodatkowych pętli głównych GUI, a dokładnie to, co powinieneś zaimportować, zależy od tego, co dokładnie robisz.

+14

Różnica między pylab i pyplot polega na tym, że pierwszy importuje numpy do swojej przestrzeni nazw. Miało to sprawić, że będzie się zachowywał bardziej podobnie z matlab. Używanie pyplota zamiast pylab jest teraz preferowane, ponieważ jest czystsze. – ianalis

Powiązane problemy