Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • PYTHON - Atelier MatPlotLib PYTHON - Atelier MatPlotLib
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

La forge institutionnelle d'INRAE étant en production depuis le 10 juin 2025, nous vous recommandons d'y créer tous vos nouveaux projets.

  • Poulard Christine
  • PYTHON - Atelier MatPlotLibPYTHON - Atelier MatPlotLib
  • Wiki
  • Atelier_clics

Atelier_clics · Changes

Page history
Update Atelier_clics authored Sep 14, 2021 by Poulard Christine's avatar Poulard Christine
Show whitespace changes
Inline Side-by-side
Atelier_clics.md
View page @ 5a7d0924
...@@ -18,7 +18,7 @@ Exemple [d'événements ](https://matplotlib.org/stable/users/event_handling.htm ...@@ -18,7 +18,7 @@ Exemple [d'événements ](https://matplotlib.org/stable/users/event_handling.htm
## Avec un "MouseEvent" ## Avec un "MouseEvent"
``` ```plaintext
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
def onclick(event): def onclick(event):
...@@ -35,6 +35,9 @@ Prenons un code \[proposé pour expliquer le principe\]([https://stackoverflow.c ...@@ -35,6 +35,9 @@ Prenons un code \[proposé pour expliquer le principe\]([https://stackoverflow.c
* sur la figure, on connecte l'événement "button_press_event" avec la fonction onclick : concrètement, si on clique quelque part dans la figure, on déclenche la fonction en lui passant comme argument l'événement * sur la figure, on connecte l'événement "button_press_event" avec la fonction onclick : concrètement, si on clique quelque part dans la figure, on déclenche la fonction en lui passant comme argument l'événement
* les attributs **xdata** et **ydata** de l'événement sont les coordonnées de la souris dans l'unité de la courbe, si la souris est sur un "Axes" ; l'axe sera alors retrouvé avec l'attributs **inaxes**. A ne pas confondre avec **x** et **y** qui sont les coordonnées en pixels. * les attributs **xdata** et **ydata** de l'événement sont les coordonnées de la souris dans l'unité de la courbe, si la souris est sur un "Axes" ; l'axe sera alors retrouvé avec l'attributs **inaxes**. A ne pas confondre avec **x** et **y** qui sont les coordonnées en pixels.
* dans la fonction onclick, on se contente d'écrire les valeurs dans la console. * dans la fonction onclick, on se contente d'écrire les valeurs dans la console.
| ![Figure_10points_alignes](uploads/92107c1130854bb0ddea14c603a7fed8/Figure_10points_alignes.png) | |
|--------------------------------------------------------------------------------------------------|--|
| courbe **donnees** initiale, 10 points alignés | |
On commence par une figure ne comportant qu'une seule courbe. On commence par une figure ne comportant qu'une seule courbe.
...@@ -42,29 +45,22 @@ Pour manipuler, on va changer la fonction onclick, elle va maintenant ajouter (e ...@@ -42,29 +45,22 @@ Pour manipuler, on va changer la fonction onclick, elle va maintenant ajouter (e
Pour cela, il faut donner un nom à la courbe, ici donnees, et on récupère les valeurs en x avec donnees. get_xdata( ). Comme on récupère un numpy.array, il faut utiliser numpy.append pour concaténer le vecteur existant avec le nouveau point., et on le passe comme nouveau vercteur avec donnees.set_xdata(). On rafraîchit la courbe avec draw_idle. Pour cela, il faut donner un nom à la courbe, ici donnees, et on récupère les valeurs en x avec donnees. get_xdata( ). Comme on récupère un numpy.array, il faut utiliser numpy.append pour concaténer le vecteur existant avec le nouveau point., et on le passe comme nouveau vercteur avec donnees.set_xdata(). On rafraîchit la courbe avec draw_idle.
```python
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import numpy as np import numpy as np
fig = None fig = None
def onclick(event): def onclick(event):
donnees.set_xdata(np.append(donnees.get_xdata(), event.xdata)) donnees.set_xdata(np.append(donnees.get_xdata(), event.xdata))
donnees.set_ydata(np.append(donnees.get_ydata(),event.ydata)) donnees.set_ydata(np.append(donnees.get_ydata(),event.ydata))
fig.canvas.draw_idle() fig.canvas.draw_idle()
fig,ax = plt.subplots() fig,ax = plt.subplots()
donnees, = ax.plot(range(10), marker='o') donnees, = ax.plot(range(10), marker='o')
fig.canvas.mpl_connect('button_press_event', onclick) fig.canvas.mpl_connect('button_press_event', onclick)
plt.show() plt.show()
```
![Figure_on_ajoute_des_points](uploads/f7559a93cb64796ce97dca1714d8c0f3/Figure_on_ajoute_des_points.png) ![Figure_on_ajoute_des_points](uploads/f7559a93cb64796ce97dca1714d8c0f3/Figure_on_ajoute_des_points.png)
......
Clone repository
  • AtelierB1_Graphiques_simples
  • AtelierB2_Lire_un_fichier
  • AtelierC
  • Atelier_D_carte
  • Atelier_D_carte_a_partir_de_fichiers_binaires
  • Atelier_E_longues_series
  • Atelier_G_widgets
  • Atelier_clic_afficher
  • Atelier_clics
  • Cartes focus sur le redimensionnement
  • GUI avec QT
  • La doc avec Sphinx
  • Lexique
  • Point Théorie Subplots
  • Pour les contributeurs
View All Pages