Qual é a forma recomendada de plotar: matplotlib ou pylab? [fechadas]

88

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ê?

Ashwin Nanjappa
fonte
1
possível duplicata de Qual é a diferença entre pylab e pyplot?
tacaswell
9
Duplicação autorreferencial?
Mad Physicist
4
Isso não deve ser encerrado como uma opinião baseada. Agora há uma resposta clara dos documentos do Matplotlib: Sempre usematplotlib.pyplot
Bernhard

Respostas:

104

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 matplotlibtem duas camadas de interface, uma camada de máquina de estado gerenciada por pyplote 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 pyplotmaioria 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 ipythonpara 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.pyematplotlib/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 ipythonvocê, 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 matplotlibem 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.

Tacaswell
fonte
20
A diferença entre pylab e pyplot é que o primeiro importa numpy em seu namespace. Isso era para fazer com que ele se comportasse de maneira mais semelhante ao matlab. Usar pyplot em vez de pylab é preferível agora porque é mais limpo.
Christian Alis,
8

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.

Apostolos
fonte
1
Esta deve ser a resposta aceita. A documentação "oficial" é a fonte, e diz que o pylab não é mais recomendado.
dturvene