Soucis avec Matplotlib


#1

Bonjour,

Je voudrais utiliser la possibilité de faire des courbes d’après des relevé de mesure avec matplotlib ; j’ai commencé petit petit mais problèmes.

J’ai lancé le programme de tracé ‘Simple’ = plot.py
http://apprendre-python.com/page-creer-graphiques-scientifiques-python-apprendre

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel(‘Label 1’)
plt.show()

Message d’erreur
pi@raspberrypi:~ $ python3.5 plot.py
Traceback (most recent call last):
File “plot.py”, line 23, in
f_plot()
File “plot.py”, line 17, in f_plot
ma_figure=plt.figure() # Implementate une interface basique autonome
File “/usr/lib/python3/dist-packages/matplotlib/pyplot.py”, line 535, in figure
**kwargs)
File “/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py”, line 81, in new_figure_manag
er
return new_figure_manager_given_figure(num, figure)
File “/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py”, line 89, in new_figure_manag
er_given_figure
window = Tk.Tk()
File “/usr/lib/python3.5/tkinter/init.py”, line 1880, in init
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

Je ne comprend pas toutes les injures et je ne sais encore moins y apporter de remède.
Merci pour votre aide.


#2

Bonjour,

L’erreur à chercher sur le net est celle-ci

ça donne cette solution.

A+


#3

Merci Jelopo pour ton aide.
Je fais la manip demain et je te tiens au courant.
Bernard


#4

Jelopo : la solution proposée pour le programme python fonctionne à merveille mais je ne trouve pas trace de mon graphique. Je ne sais où le rechercher.
J’ai lancé le programme donné en tête de _Tkinter.tclerror et le prog se termine sans erreur apparamment.
Peux-tu m’en dire un mot
Merci encore


#5

Bonjour,

Théoriquement le graphique devrait s’afficher dans une nouvelle fenêtre.
Tu est connecté en local ou en ssh ? La version de l’OS est Rasbian? Version light ou Desktop ?

A+


#6

Je suis connecté en ssh, Raspbian, je teste sur Pi 3B+ et j’en suis au début avec Linux, ce qui est loin de m’aider. Heureusement il y a le forum et ses membres.

Je mes suis contenté pour l’instant d’exécuter des tutos plus ou moins explicites, d’où mes questions et hésitations quand je rencontre des difficultés.
Il semble que certains d’entre nous arrivent à leur but, alors je persiste.


#7

Bonjour,

En général, pour afficher une nouvelle fenêtre, on est dans le même environnement graphique que celui où on lance la commande. Par exemple, une fois connecté sur un bureau (Win$ ou Linux) on clique sur une icône de navigateur et là on lance le navigateur dans une nouvelle fenêtre qui s’ouvre sur l’écran.

Dans ton cas, tu compliques les choses, car tu lances une commande qui nécessite des ressources graphiques sur un Pi alors que tu t’est connecté à partir d’une autre machine distante (poste de travail - si j’ai bien compris)

Il faut donc dire au PI que l’affichage se fera en dehors de lui même, sur la machine qui a lancé la commande ssh. Pour cela, on ajoute la notion de client/serveur graphique. Le client doit avoir les bibliothèques pour lancer un affichage. Le serveur graphique doit être démarré sur la machine où est lancé la commande ssh de connexion.

En fonction de ton OS sur ton poste de travail, il faut installer et démarrer un serveur graphique. Et soit se connecter avec ssh -X ou bien passer la commande EXPORT DISPLAY avec l’adresse du poste sur lequel tu souhaites te connecter.

Il faut reconnaître que le plus simple serait de se connecter en local sur le PI connecté directement à un écran.
Ou bien d’installer un vnc serveur sur le PI et de prendre la main à distance avec le poste de travail.

A+


#8

Bonjour Jelopo,

Merci pour les informations que tu m’as donné. Après avoir corrigé les erreurs sur mon prog, je l’ai fait tourner sur le Rpi et merveille ça fonctionne très bien. Le programme crée une nouvelle fenêtre graphique.
En effet la solution d’une liaison VPN est peut-être à envisager, mais la finalité sera à terme de transferer l’image par MMS. Il me semble superflu de développer une interface graphique sur tablette Android.
A bientôt


#9

Bonjour,

Il existe des options pour créer une image matplotlib au format fichier .png . jpeg ou autre.

A+


#10

Merci pour tout.
(j’avais posté une réponse à ton message mais j’ai dû mer…)