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 coche
- http://matplotlib.org/examples/pylab_examples/boxplot_demo2.html
Je vois que cette fonction est très utilisée, même si l'exemple ne tente de créer qu'un seul graphique. Y a-t-il un autre avantage? La démo officielle de subplots()
utilise également f, ax = subplots
lors de la création d'un seul graphique, et elle ne fait référence à 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')
python
matplotlib
plot
visualization
neelshiv
la source
la source
Réponses:
plt.subplots()
est une fonction qui renvoie un tuple contenant une figure et un ou des objets axes. Ainsi, lorsquefig, ax = plt.subplots()
vous utilisez, décompressez ce tuple dans les variablesfig
etax
. Avoirfig
est utile si vous souhaitez modifier les attributs au niveau de la figure ou enregistrer la figure sous forme de fichier image ultérieurement (par exemple avecfig.savefig('yourfilename.png')
). Vous n'avez certainement pas à utiliser l'objet de figure renvoyé, mais beaucoup de gens l'utilisent plus tard, il est donc courant de le voir. De plus, tous les objets axes (les objets qui ont des méthodes de traçage), ont quand même un objet figure parent, donc:est plus concis que cela:
la source
ax11, ax12, ax21, ax22
en utilisantfig.add_subplot(221)
(ou 222, 223, 224 respectivement).Juste un supplément ici.
La question suivante est que si je veux plus de sous-intrigues 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-tracés avec grille (2,2) dans un objet figure.Ensuite, comme nous le savons, le
fig, ax = plt.subplots()
retourne un tuple, essayons d'fig, ax1, ax2, ax3, ax4 = plt.subplots(nrows=2, ncols=2)
abord.Cela soulève une erreur, mais pas d'inquiétude, car nous voyons maintenant que
plt.subplots()
retourne en fait un tuple avec deux éléments. Le premier doit être un objet figure, et l'autre doit être un groupe d'objets de sous-tracés.Essayons donc ceci à nouveau:
et vérifiez le type:
Bien sûr, si vous utilisez des paramètres comme (nrows = 1, ncols = 4), le format doit être:
N'oubliez donc pas de conserver la construction de la liste comme la grille de sous-parcelles que nous avons définie dans la figure.
J'espère que cela vous sera utile.
la source
fig, axes = plt.subplots(nrows=10, ncols=3)
etaxes = axes.flatten()
. Maintenant , vous pouvez vous référer à chaque sous - placette par son index:axes[0]
,axes[1]
, ...nrows=1
, comme alorsaxes
est retourné à plat avec une longueur égale àncols
fig, axes = plt.subplots(nrows=1, ncols=3, squeeze=False)
En complément de la question et des réponses ci-dessus, il existe également une différence importante entre
plt.subplots()
etplt.subplot()
, notez les manquants's'
à la fin.On peut utiliser
plt.subplots()
pour faire toutes leurs sous-parcelles à la fois et il retourne la figure et les axes (pluriel d'axe) des sous-parcelles comme un tuple. Une figure peut être comprise comme une toile où vous peignez votre croquis.Considérant que, vous pouvez utiliser
plt.subplot()
si vous souhaitez ajouter les sous-tracés séparément. Il renvoie uniquement l'axe d'un sous-tracé.Cependant, il
plt.subplots()
est préférable car il vous offre des options plus faciles pour personnaliser directement l'ensemble de votre silhouettealors que, avec
plt.subplot()
, il faudra spécifier individuellement pour chaque axe qui peut devenir encombrant.la source
ax3 = plt.subplot(2,1,3)
ne fonctionnera pas car elle est de 2 sur 1, qui n'a que 2 graphiques.En plus des réponses ci-dessus, vous pouvez vérifier le type d'objet à l'aide
type(plt.subplots())
duquel renvoie un tuple, d'autre part,type(plt.subplot())
renvoiematplotlib.axes._subplots.AxesSubplot
que vous ne pouvez pas décompresser.la source