¿Cuál es la forma recomendada de graficar: matplotlib o pylab? [cerrado]

88

Veo que puedo trazar en Python usando:

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

O:

import pylab
pylab.plot(...)

Ambos usan el mismo código de trazado matplotlib .

Entonces, ¿cuál de estos recomiendan actualmente los desarrolladores / documentos de Matplotlib como el mejor método para trazar? ¿Por qué?

Ashwin Nanjappa
fuente
1
posible duplicado de ¿Cuál es la diferencia entre pylab y pyplot?
tacaswell
9
¿Duplicación autorreferencial?
Mad Physicist
4
Esto no debe cerrarse como basado en opiniones. Ahora hay una respuesta clara de los documentos de Matplotlib: Usar siemprematplotlib.pyplot
Bernhard

Respuestas:

104

Documentos oficiales: Matplotlib, pyplot y pylab: ¿cómo se relacionan?

Ambas importaciones se reducen a hacer exactamente lo mismo y ejecutarán exactamente el mismo código, son solo diferentes formas de importar los módulos.

También tenga en cuenta que matplotlibtiene dos capas de interfaz, una capa de máquina de estado administrada por pyploty la interfaz OO pyplotestá construida sobre ella, consulte ¿Cómo puedo adjuntar una función pyplot a una instancia de figura?

pylabes una forma limpia de importar de forma masiva una gran cantidad de funciones útiles (la función de la pyplotmáquina de estado, la mayoría numpy) en un solo espacio de nombres. La razón principal por la que esto existe (a mi entender) es para trabajar ipythonpara crear un shell interactivo muy agradable que más o menos replica MATLAB (para facilitar la transición y porque es bueno para jugar). Ver pylab.pyymatplotlib/pylab.py

En cierto nivel, esto es puramente cuestión de gustos y depende un poco de lo que estés haciendo.

Si está no ha incrustado en una interfaz gráfica de usuario (ya sea usando un backend no interactivo para las escrituras a granel o usando uno de los backends interactivos proporcionados) lo típico que hacer es

import matplotlib.pyplot as plt
import numpy as np

plt.plot(....)

que no contamina el espacio de nombres. Prefiero esto para poder realizar un seguimiento de dónde vienen las cosas.

Si utiliza

ipython --pylab

esto es equivalente a correr

from pylab import * 

Ahora se recomienda que para las nuevas versiones de ipythonsu uso

ipython --matplotlib

que configurará todos los detalles de fondo adecuados para que los backends interactivos funcionen bien, pero no importará nada en masa. Deberá importar explícitamente los módulos que desee.

import numpy as np
import matplotlib.pyplot as plt

es un buen comienzo.

Si está incrustando matplotliben una interfaz gráfica de usuario, no desea importar pyplot, ya que eso iniciará bucles principales de interfaz gráfica de usuario adicionales, y exactamente lo que debe importar depende de exactamente lo que esté haciendo.

tacaswell
fuente
19
La diferencia entre pylab y pyplot es que el primero importa numpy en su espacio de nombres. Esto fue para que se comportara de manera más similar con matlab. Ahora se prefiere usar pyplot en lugar de pylab porque es más limpio.
Christian Alis