Créer des sous-intrigues dans Matplotlib dans une boucle?
Je suis en utilisant ce code qui donne une belle parcelles, l'une après l'autre (à l'aide de IPython-portable & Pandas)
for subsm in subsl:
H7, subsm = sumsubdesc2(table, subsm)
ax1=H7.plot()
plt.title('Rolling 4q mean %s'%(subsm))
ax1.set_title('Rolling 4q mean %s'%(subsm))
ax1.set_ylim(100000,600000)
Je voudrais obtenir les parcelles "2up" l'un à côté de l'autre pour 3 lignes total (5 parcelles) ne peuvent pas comprendre comment gérer que, puisque tous les intrigue secondaire exemples semblent être pour subplotting éther de données ou à une parcelle et spécifique de la grille de placement.
Donc je ne sais pas comment créer l'intrigue principale et ensuite intrigue secondaire un certain nombre de graphiques (dans ce cas 5) avec des titres comme deux?
Modifier la deuxième ligne de code depuis que j'ai laissé de côté l'appel de la fonction ;-(
J'aimerais une solution dynamique, bien que dans le cas précis, je sais que j'ai 5 cartes
OriginalL'auteur dartdog | 2013-09-19
Vous devez vous connecter pour publier un commentaire.
Voici ce que vous devez faire:
Ça va marcher, même si
axs.size > len(subsl)
depuisStopIteration
est déclenché lorsque les plus brefs itératif s'épuise. Notez queaxs.flat
est un itérateur sur le de la ligne de commande aplatieaxs
tableau.Pour cacher la dernière parcelle qui n'est pas visible, faites ceci:
Plus généralement, pour
axs.size - len(subsl)
supplémentaire parcelles à la fin de la grille de faire:Que la tranche est un peu ardu, donc je vais vous expliquer:
Le tableau
axs
aaxs.size
éléments. L'indice du dernier élément de la version aplatie deaxs
estaxs.size - 1
.subsl
alen(subsl)
éléments et le même raisonnement s'applique sur l'index du dernier élément. Mais, nous avons besoin de passer de l'arrière à partir du dernier élément deaxs
à la dernière tracées élément, donc nous avons besoin à l'étape par -1.désolé eu une erreur sur 3 fig, axs = plt.intrigues secondaires(nrows, 2, sharey=True)>>>range() integer fin argument attendu, a obtenu le flotteur.
La réponse est ci-dessous en me donnant un résultat décent, mais il a re-marqué de l'axe x de 0 à 70 au lieu d'utiliser les dates comme il l'a fait quand tracés directement?
Juste besoin de forcer le résultat de
math.ceil
àint
(uniquement en Python 2, pour info)Qu'il a fait, j'ai même des années sur l'axe des x j'ai un tableau vierge à la fin de Toute façon de le supprimer?
OriginalL'auteur Phillip Cloud
Je ne suis pas sûr, mais je pense que ce que vous demandez est
Je ne suis pas sûr de ce que vous entendez par "titres à deux."
Mon montage avec l'appel de la fonction ci-dessus a foutu ma question reste bloqué sur la façon de boucle..
J'ai édité ma réponse à faire, je pense que ce que vous demandez (et la correction d'un bug).
Je ne vois pas comment intégrer: H7, subsm = sumsubdesc2(tableau, subsm) ax1=H7.plot()
Je l'ai modifié de sorte que subsm est calculé avec votre sumsubdesc2 fonction pour chaque boucle (ce n'était pas dans l'original de votre code comme je le rappel). Je ne suis pas exactement sûr de ce que la fonction n'a, donc, c'est ma meilleure supposition sur ce que sera le travail.
OriginalL'auteur Greg Whittier