|
|
|
|
|
|
|
Rappel :
|
|
|
|
- un graphique matplotlib est automatiquement tracé sur une fenêtre volante munie d'une barre d'outils. Il comporte une unique `figure` c'est à dire un objet Figure, porté par une fenêtre ;
|
|
|
|
- un objet figure comporte un ou plusieurs objet Axes `ax`est la notation habituelle d'un objet Axes qui est fort mal nommé puisqu'il s'agit d'un <kbd> espace de la figure muni d'un système d'axes... </kbd>. A titre personnel, j'aime bien l'appeler "vignette".
|
|
|
|
- des objets "Axes" sont en général séparés et contiennent une figure, mais on peut aussi en définir un comme un espace réservé (marge, ou pour contenir un texte ou une légende...) ou superposer des Axes qui vont partager l'un des deux "vrais axes, x ou y".
|
|
|
|
|
|
|
|
[[TOC]]
|
|
|
|
|
|
|
|
## Créer une figure
|
|
|
|
|
|
|
|
### subplots
|
|
|
|
`fig, ax = plt.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, width_ratios=None, height_ratios=None, subplot_kw=None, gridspec_kw=None, **fig_kw)`
|
|
|
|
|
|
|
|
#### nrows et ncols
|
|
|
|
Détermination de la dimensionnalité de `ax`.
|
|
|
|
Si squeeze=True (défaut) :
|
|
|
|
- si nrows=ncols=1 alors `ax`est bien un objet Axes
|
|
|
|
- si nrows=1 ou ncols=1 alors `ax`est une liste d'objets Axes (et les vignettes seront disposés soit les unes au-dessus des autres soit les unes à côté des autres).
|
|
|
|
- sinon, alors `ax`est une liste de listes d'objets Axes .
|
|
|
|
|
|
|
|
Pour nommer les Axes dans le cas où il y en a plus que 1, on peut les nommer individuellement en utilisant la notion de tuple : `fig, ((ax1, ax1), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2)`
|
|
|
|
|
|
|
|
#### `sharex` et `sharey`
|
|
|
|
Si sharex = True, alors tous les objets Axes définis partagent le même axe des x (et même chose pour sharey et l'axe des y).
|
|
|
|
|
|
|
|
On peut jumeler des objets Axes après coup (si une partie mais pas tous les objets Axes de la figure partagent un axe).
|
|
|
|
|
|
|
|
|
|
|
|
#### `height_ratios` et `width_ratios`
|
|
|
|
Ce sont maintenant des arguments à part entière : dans les versions antérieures ce n'étaient que des mot-clefs connus du keyword argument.
|
|
|
|
Si on a n lignes et p colonnes, on définit height_ratios = liste de n entiers et width_ratios = liste de p entiers qui vont définir les proportions de chacun.
|
|
|
|
`width_ratios = [ 5, 1, 2]` : la première colonne occupera 5/8 de la largeur de la figure, la seconde 1/8 etc...
|
|
|
|
|
|
|
|
#### `layout` ? !
|
|
|
|
layout = "constrained" : à tester, pour remplacer tight_layout !
|
|
|
|
|
|
|
|
### Organiser les vignettes : layout
|
|
|
|
voir le focus correspondant
|
|
|
|
Pour définir une grille avec des tailles variable, utiliser les mots-clef `height_ratios` et `width_ratios` ainsi que le mot-clef mosaic pour définir facilement les espaces (analogue à ce qui existe en javascript)
|
|
|
|
|
|
|
|
### utiliser une vignette pour autre chose qu'un graphique
|
|
|
|
Commandes pour que la vignette ne soit pas munie d'axes ni de ticks
|
|
|
|
|
|
|
|
(à compléter) |