He decidido configurar un archivo personalizado matplotlibrc
y, por lo tanto, necesito elegir un servidor para él matplotlib
. ¿Cuál es el mejor en términos de no necesitar instalar otros paquetes adicionales?
Tiendo a usar matplotlib
via ipython --pylab
, por lo que quiero gráficos interactivos basados en ventanas (cuando no los uso, puedo cambiar a Agg
).
Lo he intentado WXAgg
, pero esto requiere (con bastante sensatez) WX.
Respuesta1
Ambos Agg
y TkAgg
no requieren ninguna dependencia más allá de la biblioteca estándar de Python.
He tenido algunos problemas con TkAgg
subprocesos múltiples, por lo que si solo necesita guardar en archivos (y no plt.show()
), recomendaría usarlo Agg
en su lugar (simplemente reemplácelo donde TkAgg
aparece a continuación).
Agregue la siguiente línea a su ~/.config/matplotlib/matplotlibrc
:
backend: TkAgg
O las siguientes líneas a su archivo Python:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
Respuesta2
import matplotlib
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,1,100)
y = np.sin(x)
plt.plot(x,y)
plt.show()
PyQt5 es el mejor backend para Matplotlib que yo sepa. Permite todas las ediciones incluso después de ejecutar su programa. Para usarlo,
import matplotlib
matplotlib.use('Qt5Agg')
pon esto primero antes de llamar
import matplotlib.pyplot as plt
Nota: necesitas instalar PyQt5
para instalación a través de pip, ejecute el comando
pip install PyQt5
Respuesta3
Prefiero los gráficos en línea con matplotlib a los gráficos en una ventana separada porque hace que sea más fácil ver lo que estoy haciendo cuando estoy ajustando el código Python.
IDE de Python para científicos (espía) puede realizar trazados en línea. Para probar esta función, abra la terminal y escriba:
sudo apt install python2.7 python-matplotlib spyder ipython # Python 2.x in Ubuntu 18.04 and earlier
o
sudo apt install python3 python3-matplotlib spyder3 ipython3 # Python 3.x
Después del mensaje de ipython en la consola de IPython, copie/pegue el siguiente código y presione la Entertecla para ejecutarlo.
import matplotlib.pyplot as plt
x, y = [-1, 12], [1, 4]
plt.plot(x, y, marker = 'o')
El editor de texto Atom con el paquete Hydrogen para Atom instalado también puede realizar gráficos en línea. Encuentro que la interfaz Atom es más complicada de configurar que Spyder, en la que el trazado en línea con matplotlib funciona de inmediato. Comencé con el trazado en línea en Atom porque también quería usar Atom para crear trazados en línea con otros lenguajes de programación.