Les Pandas de la barre de terrain avec des couleurs spécifiques et de l'emplacement de la légende?
J'ai une pandas DataFrame
et je veux tracer un graphique à barres qui comprend une légende.
import pylab as pl
from pandas import *
x = DataFrame({"Alpha": Series({1: 1, 2: 3, 3:2.5}), "Beta": Series({1: 2, 2: 2, 3:3.5})})
Si je l'appelle de la parcelle directement, alors qu'il met la légende au-dessus de la parcelle:
x.plot(kind="bar")
Si je tourne de la légende dans l'intrigue et essayez de l'ajouter plus tard, alors qu'il ne conserve pas les couleurs associées avec les deux colonnes de la DataFrame (voir ci-dessous):
x.plot(kind="bar", legend=False)
l = pl.legend(('Alpha','Beta'), loc='best')
Quelle est la bonne manière d'inclure une légende dans un matplotlib de la parcelle à partir d'une Pandas DataFrame?
- J'obtiens les mêmes couleurs à chaque fois.
- Je suis à l'aide de Python 2.6.6, IPython 0.10.1 l'a, et les Pandas 0.7.0.dev-2546ac7. @eumiro: Vous obtenez deux couleurs différentes dans les deux versions? Ma deuxième commande montre les deux de la même couleur.
- Python2.7, les Pandas 0.7.0. Vos deux approches retour le même rouge-vert de bars, le même rouge-vert légende. Pas le rouge-rouge légende comme dans votre capture d'écran. Désolé, aucune idée.
Vous devez vous connecter pour publier un commentaire.
Si vous voulez ajouter la légende manuellement, vous devez demander l'intrigue secondaire pour les éléments de la barre de parcelle:
Aussi,
plt.legend(loc='best')
ouax.legend(loc='best')
, il faut "juste travail", parce qu'il y a déjà des "liens" vers le bar de la parcelle correctifs mis en place lorsque la parcelle est faite, de sorte que vous n'avez pas à passer d'une liste des étiquettes de l'axe.Je ne sais pas si la version de pandas vous utilisez renvoie un handle à l'intrigue secondaire (
ax = ...
) mais je suis assez certain que 0.7.3 n'. Vous pouvez toujours obtenir une référence à elle avecplt.gca()
.color='#336699', alpha=0.5
pour plusieurs bars dans un DataFrame de l'intrigue?La plus succincte voie à suivre est:
ou en général