Il semble donc que sur Ubuntu pour Windows (sous-système Windows pour Linux), les gens suggèrent que nous devons utiliser le backend Agg et simplement sauvegarder les images, et non afficher les parcelles.
import matplotlib
matplotlib.use('Agg') # no UI backend
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2*np.pi*t)
plt.plot(t, s)
plt.title('About as simple as it gets, folks')
#plt.show()
plt.savefig("matplotlib.png") #savefig, don't show
Comment pourrions-nous l'obtenir là où plt.show () nous montrerait une image? Mon option actuelle est de remplacer plot.show () pour simplement sauvegarder un plot-148123456.png sous/mnt/c/Utilisateurs/james/plots/dans des fenêtres et d’avoir une fenêtre Explorer ouverte pour visionner les images.
Je suppose que je pourrais héberger ce dossier et utiliser un navigateur.
Mon objectif est de pouvoir exécuter des exemples simples, tels que le code ci-dessus, sans changer le code en ftp les images quelque part, etc. Je veux simplement que l'intrigue s'affiche dans une fenêtre.
Quelqu'un a-t-il trouvé une façon décente de le faire?
Ok, alors je l'ai fait fonctionner comme suit. J'ai Ubuntu sur Windows, avec anaconda python 3.6 installé.
Sudo apt-get update
Sudo apt-get install python3.6-tk
_ (vous devrez peut-être installer un autre python*-tk
dépendant de la python que vous utilisez)pip install matplotlib
_ (pour matplotlib. mais beaucoup d'autres choses fonctionnent aussi maintenant)export DISPLAY=localhost:0.0
(ajouter à ~/.bashrc
rendre permanent)Quoi qu'il en soit, après tout cela, ce code fonctionnant sous ubuntu sur wsl fonctionnait tel quel:
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2*np.pi*t)
plt.plot(t, s)
plt.title('About as simple as it gets, folks')
plt.show()
C’est peut-être préférable de le faire avec un ordinateur Jupyter ou quelque chose du genre, mais il est agréable d’avoir une ligne de commande de base python matplotlib dans Ubuntu pour Windows sur Subsystem pour Linux, ce qui permet à de nombreuses autres applications gui de fonctionner aussi.
Edit 2019-09-04 : Aujourd'hui, je rencontrais des problèmes liés à l'impossibilité d'obtenir des ressources d'écran après la mise à niveau de certaines bibliothèques. J'ai donc installé VcXsrv et l'ai utilisé à la place de Xming. Il suffit d’installer à partir de https://sourceforge.net/projects/vcxsrv/ et d’exécuter xlaunch.exe, de sélectionner plusieurs fenêtres, puis de nouveau en ordre, puis de nouveau. Ensuite, tout a fonctionné.
Pour que matplotlib fonctionne avec GTKAgg sur Bash sur Ubuntu sous Windows , je:
export DISPLAY=localhost:0.0
_ (ajoutez à ~/.bashrc pour rendre permanent)]Sudo pip uninstall matplotlib
Sudo apt install python-matplotlib
backend : GTKAgg
(plutôt que backend : agg
)Sudo apt-get install python-gtk2-dev
, mais cela peut ne pas être nécessaire.Désinstallation de matplotlib installé par pip et réinstallation via apt semble être nécessaire car pip n'inclut pas les extensions C nécessaires à l'exécution de GTK, contrairement à la version apt.
J'ai trouvé la meilleure approche consiste à installer Jupyter sur un sous-système Windows pour Linux (WSL) en suivant
Sudo apt update && upgrade
Sudo apt install python3 python3-pip ipython3
Maintenant, vous pouvez installer matplotlib
pip3 install matplotlib
Et le cahier Jupyter
pip3 install jupyter
Cochez ce lien si vous avez besoin de plus d'informations Configuration de Python sur le sous-système Windows pour Linux (WSL)