... | ... | @@ -97,11 +97,13 @@ plt.show() |
|
|
```
|
|
|
|
|
|
Le code "fait le travail", vous pouvez tester et essayer avec d'autres jeux de données. Vous pourrez trouver des données pour lesquelles le calcul des distances proposé ici n'est pas satisfaisant car il n'identifie pas le point le plus proche "visuellement" : il est donc préférable de raisonner en unités "écran", ce qu'on fera dans la suite.
|
|
|
|
|
|
| code ci-dessus | code ci-dessous, avec plusieurs courbes |
|
|
|
|----------------|-----------------------------------------|
|
|
|
| ![Figure initiale, 10points alignés](uploads/467300d845b9a2e75b1b8ecca19328d8/selection_point_mouseclick.png) | ![selection_point_mouseclick_2courbes](uploads/5e59b3773c9d83f464047deb72e4d5ff/selection_point_mouseclick_2courbes.png) |
|
|
|
| ![Figure initiale, 10points alignés](uploads/467300d845b9a2e75b1b8ecca19328d8/selection_point_mouseclick.png) | ![selection_point_mouseclick_2courbes](uploads/197d80a53567be4fb1ec3f375240f1ad/selection_point_mouseclick_2courbes.png) |
|
|
|
| _une étoile rouge matérialise le point identifié comme le plus proche du clic de souris_ | _résultats en distance "unités écran", pour 2 courbes_ |
|
|
|
|
|
|
|
|
|
### Avec une figure comportant 2 courbes ou plus.
|
|
|
|
|
|
Dans ce nouveau code, on va introduire deux difficultés (toutes relatives !):
|
... | ... | @@ -111,6 +113,8 @@ Dans ce nouveau code, on va introduire deux difficultés (toutes relatives !): |
|
|
|
|
|
On a "factorisé" le code en définissant dans la fonction onclick_proche_2courbes une sous-fonction qui fera l'opération sur une courbe, son annotation associée et son "carré" fluo associé.
|
|
|
|
|
|
Dans l'illustration ci-dessus, à droite, on peut vérifier que le point sélectionné n'est pas forcément le plus proche "en distance en unité de la courbe". Pour vérifier facilement la différence de comportement, il suffit de ne pas passer d'argument ratio_w_sur_h à la sous-fonction operations_sur_une_courbe, ou alors en passant None : les calculs se feront alors en "distance en unités des données".
|
|
|
|
|
|
```python
|
|
|
import matplotlib.pyplot as plt
|
|
|
import numpy as np
|
... | ... | @@ -333,5 +337,3 @@ def submit_radius(val): |
|
|
nuage, = ax.plot(x, y, '*', c='blue', label="nuage", picker=init_radius, ls='None')
|
|
|
textbox_radius.on_submit(submit_radius)
|
|
|
``` |
|
|
|
|
|
![selection_point_mouseclick_2courbes](uploads/197d80a53567be4fb1ec3f375240f1ad/selection_point_mouseclick_2courbes.png) |
|
|
\ No newline at end of file |