Pourquoi beaucoup d'exemples utilisent "fig, ax = plt.sous-intrigues()" dans Matplotlib/pyplot/python
j'apprends à utiliser matplotlib
en étudiant des exemples, et beaucoup d'exemples semblent inclure une ligne comme la suivante avant de créer un seul tracé...
fig, ax = plt.subplots()
Voici quelques exemples...
- modifier le texte de l'étiquette de la tique
- http://matplotlib.org/examples/pylab_examples/boxplot_demo2.html
je vois cette fonction beaucoup utilisé, même si l'exemple n'est d'essayer de créer un tableau unique. Est-il un autre avantage? La démo officielle de subplots()
utilise également f, ax = subplots
pour créer un seul graphique, et il ne fait référence à une hache qu'après cela. C'est le code qu'ils utilisent.
# Just a figure and one subplot
f, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')
2 réponses
plt.subplots()
est une fonction qui renvoie un tuple contenant une figure et des axes objet(s). Ainsi, en utilisant fig, ax = plt.subplots()
vous déballez ce tuple dans les variables fig
et ax
. Avoir fig
est utile si vous voulez changer les attributs de niveau de figure ou enregistrer la figure comme un fichier image plus tard (par exemple avec fig.savefig('yourfilename.png')
. Vous n'avez certainement pas à utiliser l'objet figure retourné mais beaucoup de gens l'utilisent plus tard donc il est commun de voir. Aussi, tous les axes d'objets (les objets qui ont des méthodes de pointage), ont de toute façon un objet figure parent, ainsi:
fig, ax = plt.subplots()
est plus concis que ceci:
fig = plt.figure()
ax = fig.add_subplot(111)
juste un supplément ici.
la question suivante est que si je veux plus de sous-lots dans la figure?
comme mentionné dans le Doc, nous pouvons utiliser fig = plt.subplots(nrows=2, ncols=2)
pour définir un groupe de sous-lots avec grille(2,2) dans un objet de figure.
alors comme nous le savons, le fig, ax = plt.subplots()
renvoie un tuple, essayons fig, ax1, ax2, ax3, ax4 = plt.subplots(nrows=2, ncols=2)
d'abord.
ValueError: not enough values to unpack (expected 4, got 2)
il soulève une erreur, mais pas d'inquiétude, parce que nous voyons maintenant que plt.subplots()
retourne en fait un tuple avec deux éléments. Le premier doit être un objet de figure, et l'autre doit être un groupe d'objets de sous-lots.
alors réessayons:
fig, [[ax1, ax2], [ax3, ax4]] = plt.subplots(nrows=2, ncols=2)
et vérifier le type:
type(fig) #<class 'matplotlib.figure.Figure'>
type(ax1) #<class 'matplotlib.axes._subplots.AxesSubplot'>
bien sûr, si vous utilisez les paramètres comme (nrows=1, ncols=4), alors le format devrait être:
fig, [ax1, ax2, ax3, ax4] = plt.subplots(nrows=1, ncols=4)
Donc n'oubliez pas de garder la construction de la liste comme même comme la grille de sous-lots nous avons mis dans la figure.
J'espère que cela vous sera utile.