... | @@ -45,6 +45,30 @@ Il existe plusieurs façons de faire, dont la plus simple : |
... | @@ -45,6 +45,30 @@ Il existe plusieurs façons de faire, dont la plus simple : |
|
|
|
|
|
`mon_axe.axis('off')`
|
|
`mon_axe.axis('off')`
|
|
|
|
|
|
|
|
## la superposition d'éléments (z-order)
|
|
|
|
|
|
|
|
Les différents éléments ("artistes") sont tracés par mpl dans un ordre prédéfini, mais il est toujours possible de changer avec l'attribut `zorder`.
|
|
|
|
https://matplotlib.org/stable/gallery/misc/zorder_demo.html
|
|
|
|
|
|
|
|
### ordre de tracé des courbes
|
|
|
|
Les courbes de même nature (eg plot) sont tracées dans l'ordre, donc la première tracée sera placée sous les autres.
|
|
|
|
Par contre (version 3.7) on remarque que les courbes fill_between sont tracées par dessus les "plot" même si tracées avant. Un réglage par le z-order n'a pas permis de régler le problème.
|
|
|
|
|
|
|
|
[animation_desagMG](uploads/30d30b8c62081c6e6ba4136fc0a2ba27/animation_desagMG.gif)
|
|
|
|
|
|
|
|
### astuce : ordre de tracé des Axes et transparence des fonds d'Axes.
|
|
|
|
La solution trouvée est le modifier le z-order des Axes, et dans le cas présenté ci-dessous les plots d'une part et les fill_between d'autre part sont tracés sur des Axes différents, jumelés par x.
|
|
|
|
|
|
|
|
```python
|
|
|
|
ax_2m = ax.twinx() # ax_2m qui porte les fill_between
|
|
|
|
ax_2m.set_zorder(5)
|
|
|
|
ax.set_zorder(20) # on affecte à ax un z-order plus haut
|
|
|
|
ax.patch.set_alpha(0) # important, sinon ax masque ax_2m
|
|
|
|
```
|
|
|
|
Nous avons résolu le problème en affectant un z-order aux deux Axes pour gérer les superpositions, et en rendant transparent le fond de la "vignette" du dessus qui, sinon, masque totalement la vignette du dessous.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Les dates !
|
|
## Les dates !
|
|
|
|
|
|
### Eviter de mélanger les standards de dates : datetime, matplotlib et pandas
|
|
### Eviter de mélanger les standards de dates : datetime, matplotlib et pandas
|
... | | ... | |