7 votes

Quel est le bon backend par défaut pour matplotlib ?

J'ai décidé de mettre en place un matplotlibrc et j'ai donc besoin de choisir un backend pour matplotlib . Quelle est la meilleure solution pour ne pas avoir à installer d'autres paquets supplémentaires ?

J'ai tendance à utiliser matplotlib via ipython --pylab Je veux donc des graphiques interactifs basés sur des fenêtres (lorsque ce n'est pas le cas, je peux passer à l'option Agg ).

J'ai essayé WXAgg mais cela nécessite (de manière assez raisonnable) WX.

9voto

matwilso Points 206

Les deux Agg y TkAgg ne nécessitent aucune dépendance au-delà de la bibliothèque standard de Python.

J'ai eu quelques problèmes avec TkAgg et le multithreading, donc si vous n'avez besoin que d'enregistrer dans des fichiers (et non dans des plt.show() ), je recommande d'utiliser Agg à la place (il suffit de le remplacer à l'endroit où TkAgg apparaît ci-dessous).

Soit vous ajoutez la ligne suivante à votre ~/.config/matplotlib/matplotlibrc :

backend: TkAgg

Ou les lignes suivantes dans votre fichier Python :

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

1voto

Kay Zhu Points 9703
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 est le meilleur backend pour Matplotlib à ma connaissance. Il permet toutes les modifications même après l'exécution du programme. Pour l'utiliser,

import matplotlib
matplotlib.use('Qt5Agg')

à mettre en place avant d'appeler

import matplotlib.pyplot as plt

N.B. vous devez installer PyQt5

pour l'installation via pip, exécutez la commande

pip install PyQt5

0voto

karel Points 97032

Je préfère les tracés en ligne avec matplotlib aux tracés dans une fenêtre séparée parce qu'il est plus facile de voir ce que je fais lorsque je peaufine le code Python.

IDE Python pour les scientifiques ( spyder ) permet de réaliser des tracés en ligne. Pour tester cette fonctionnalité, ouvrez le terminal et tapez :

sudo apt install python2.7 python-matplotlib spyder ipython # Python 2.x in Ubuntu 18.04 and earlier 

oder

sudo apt install python3 python3-matplotlib spyder3 ipython3 # Python 3.x  

Après l'invite ipython dans la console IPython, copiez/collez le code ci-dessous et appuyez sur la touche Enter pour l'exécuter.

import matplotlib.pyplot as plt   
x, y = [-1, 12], [1, 4]  
plt.plot(x, y, marker = 'o')  

enter image description here

L'éditeur de texte Atom avec le package Hydrogen pour Atom installé peut également effectuer des tracés en ligne. Je trouve l'interface Atom plus compliquée à configurer que Spyder dans lequel le traçage en ligne avec matplotlib fonctionne d'emblée. J'ai commencé à utiliser le traçage en ligne dans Atom parce que je voulais utiliser Atom pour faire des tracés en ligne avec d'autres langages de programmation.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X