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 por pyplot
e a interface OO pyplot
é 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 (a pyplot
maioria das funções da máquina de estado numpy
) em um único espaço de nomes. A principal razão para isso existir (no meu entendimento) é trabalhar ipython
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). Ver pylab.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
ipython --pylab
isso é equivalente a correr
from pylab import *
Agora é recomendado que, para novas versões de ipython
você, use
ipython --matplotlib
que 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.