Widzę, że mogę drukować w Pythonie za pomocą:
import matplotlib
matplotlib.pyplot.plot(...)
Lub:
import pylab
pylab.plot(...)
Oba używają tego samego kodu kreślenia matplotlib .
Którą z nich obecnie programiści / dokumentatorzy Matplotlib zalecają jako lepszą metodę kreślenia? Czemu?
python
matplotlib
Ashwin Nanjappa
źródło
źródło
matplotlib.pyplot
Odpowiedzi:
Oficjalne dokumenty: Matplotlib, pyplot i pylab: jak są ze sobą powiązane?
Oba te importy sprowadzają się do robienia dokładnie tego samego i będą uruchamiać dokładnie ten sam kod, to tylko różne sposoby importowania modułów.
Zauważ również, że
matplotlib
ma dwie warstwy interfejsu, warstwę automatu stanu zarządzaną przezpyplot
i interfejs OOpyplot
jest zbudowany na wierzchu, zobacz Jak mogę dołączyć funkcję pyplot do instancji figury?pylab
to czysty sposób na zbiorcze importowanie całej masy przydatnych funkcji (pyplot
większość funkcji automatu stanównumpy
) do jednej przestrzeni nazw. Głównym powodem, dla którego to istnieje (w moim rozumieniu) jest pracaipython
nad stworzeniem bardzo ładnej interaktywnej powłoki, która mniej więcej replikuje MATLAB (aby ułatwić przejście i ponieważ jest dobry do zabawy). Zobaczpylab.py
imatplotlib/pylab.py
Na pewnym poziomie jest to wyłącznie kwestia gustu i zależy trochę od tego, co robisz.
Jeśli nie osadzasz w GUI (używając nieinteraktywnego zaplecza dla skryptów zbiorczych lub jednego z dostarczonych interaktywnych backendów), typową rzeczą do zrobienia jest
import matplotlib.pyplot as plt import numpy as np plt.plot(....)
co nie zanieczyszcza przestrzeni nazw. Wolę to, żeby móc śledzić, skąd pochodzą rzeczy.
Jeśli użyjesz
jest to równoważne z bieganiem
from pylab import *
Obecnie zaleca się, aby w nowych wersjach
ipython
używaćktóry skonfiguruje wszystkie odpowiednie szczegóły tła, aby interaktywne backendy działały dobrze, ale nie będzie niczego importować zbiorczo. Będziesz musiał jawnie zaimportować żądane moduły.
import numpy as np import matplotlib.pyplot as plt
to dobry początek.
Jeśli
matplotlib
osadzasz w gui, nie chcesz importować pyplota, ponieważ spowoduje to uruchomienie dodatkowych głównych pętli gui, a dokładnie to, co powinieneś importować, zależy od tego, co robisz.źródło
Dokumentacja na https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-related , która również opisuje różnicę między pyglot i pylab, stwierdza: „Chociaż w wielu przykładach zastosowano pylab, nie jest już zalecane ”. . Nie widzę więc powodu, aby używać pylabu ani się tym martwić.
źródło