web-dev-qa-db-fra.com

Quel est un bon, backend par défaut pour matplotlib

J'ai décidé de configurer un matplotlibrc personnalisé et je dois donc choisir un backend pour matplotlib. Quel est le meilleur en termes de ne pas avoir besoin d'installer d'autres packages supplémentaires?

J'ai tendance à utiliser matplotlib via ipython --pylab, donc je veux des tracés interactifs basés sur une fenêtre (quand je ne peux pas, je peux passer à Agg).

J'ai essayé WXAgg, mais cela nécessite (assez raisonnablement) WX.

4
Dave

Agg et 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 multi-threading, donc si vous avez seulement besoin de sauvegarder dans des fichiers (et non pas plt.show()), je vous recommanderais d'utiliser Agg à la place (remplacez-le simplement où TkAgg apparaît ci-dessous).

Ajoutez la ligne suivante à votre ~/.config/matplotlib/matplotlibrc:

backend: TkAgg

Ou les lignes suivantes dans votre fichier python:

import matplotlib
matplotlib.use('TkAgg') # MUST BE CALLED BEFORE IMPORTING plt
import matplotlib.pyplot as plt
4
matwilso

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

Python IDE pour les scientifiques ( spyder ) peut effectuer un tracé en ligne. Pour essayer cette fonctionnalité, ouvrez le terminal et tapez:

Sudo apt install python2.7 python-matplotlib spyder ipython  

Après l'invite ipython dans la console IPython, copiez/collez le code ci-dessous et appuyez sur le bouton Enter clé 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 un traçage en ligne. Je trouve l'interface Atom plus complexe à configurer que Spyder dans laquelle le traçage en ligne avec matplotlib fonctionne immédiatement. J'ai commencé à utiliser le tracé en ligne dans Atom parce que je voulais aussi utiliser Atom pour créer des tracés en ligne avec d'autres langages de programmation.

0
karel