Vejo que posso plotar em Python usando:
import matplotlib
matplotlib.pyplot.plot(...)
Ou:
import pylab
pylab.plot(...)
Ambos usam o mesmo código de plotagem matplotlib .
Então, qual deles os desenvolvedores / docs do Matplotlib atualmente recomendam como o melhor método para plotar? Por quê?
python
matplotlib
Ashwin Nanjappa
fonte
fonte
matplotlib.pyplot
Respostas:
Documentos oficiais: Matplotlib, pyplot e pylab: como estão relacionados?
Ambas as importações fazem exatamente a mesma coisa e executam exatamente o mesmo código, são apenas maneiras diferentes de importar os módulos.
Observe também que
matplotlib
tem duas camadas de interface, uma camada de máquina de estado gerenciada porpyplot
e a interface OOpyplot
é construída em cima, consulte Como posso anexar uma função pyplot a uma instância de figura?pylab
é uma maneira limpa de importar em massa uma série de funções úteis (apyplot
maioria das funções da máquina de estadonumpy
) em um único espaço de nomes. A principal razão para isso existir (no meu entendimento) é trabalharipython
para fazer um shell interativo muito bom que mais ou menos replique o MATLAB (para tornar a transição mais fácil e porque é bom para brincar). Verpylab.py
ematplotlib/pylab.py
Em algum nível, isso é puramente uma questão de gosto e depende um pouco do que você está fazendo.
Se você não estiver incorporando em uma interface do usuário (usando um back-end não interativo para scripts em massa ou usando um dos back-ends interativos fornecidos), a coisa típica a fazer é
import matplotlib.pyplot as plt import numpy as np plt.plot(....)
que não polui o espaço de nomes. Eu prefiro isso para poder acompanhar de onde as coisas vieram.
Se você usar
isso é equivalente a correr
from pylab import *
Agora é recomendado que, para novas versões de
ipython
você, useque configurará todos os detalhes de fundo apropriados para fazer os back-ends interativos funcionarem bem, mas não importará nada em massa. Você precisará importar explicitamente os módulos desejados.
import numpy as np import matplotlib.pyplot as plt
é um bom começo.
Se você estiver embutindo
matplotlib
em um gui, você não deseja importar pyplot, pois isso iniciará loops principais de gui extras, e exatamente o que você deve importar depende exatamente do que você está fazendo.fonte
A documentação em https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-related , que também descreve a diferença entre pyglot e pylab, afirma: "Embora muitos exemplos usem pylab, não é mais recomendado. " . Portanto, não vejo nenhuma razão para usar o pylab ou me preocupar com isso.
fonte