Supposons que j'ai le code suivant qui trace quelque chose de très simple en utilisant des pandas:
import pandas as pd
values = [[1, 2], [2, 5]]
df2 = pd.DataFrame(values, columns=['Type A', 'Type B'],
index=['Index 1', 'Index 2'])
df2.plot(lw=2, colormap='jet', marker='.', markersize=10,
title='Video streaming dropout by category')
Comment définir facilement des étiquettes x et y tout en préservant ma capacité à utiliser des couleurs spécifiques? J'ai remarqué que le plot()
wrapper pour pandas DataFrames ne prend aucun paramètre spécifique pour cela.
python
pandas
dataframe
matplotlib
Everaldo Aguiar
la source
la source
pd.plot()
? Compte tenu de la concision supplémentaire depd.plot()
plus,plt.plot()
il semble qu'il serait logique de le rendre encore plus succinct au lieu d'avoir à appelerax.set_ylabel()
.ax.set_ylabel("y label")
, cela renvoie une erreur'list' object is not callable
. Une idée?ax.axes.set_ylabel("y label")
.ax.set(xlabel='...)
plus haut dans cette réponse car elle pourrait passer au-delà du graphique. C'est vraiment l'approche la plus succincte pour définir les deux axes, ce qui est le cas d'utilisation courant.Vous pouvez l'utiliser comme ceci:
Évidemment, vous devez remplacer les chaînes «xlabel» et «ylabel» par ce que vous voulez qu'elles soient.
la source
plt.xlabel()
etc. aprèsdf.plot()
, pas avant, car sinon vous obtenez deux tracés - les appels modifieront un tracé "précédent". C'est la même choseplt.title()
.Si vous étiquetez les colonnes et l'index de votre DataFrame, les pandas fourniront automatiquement les étiquettes appropriées:
Dans ce cas, vous devrez toujours fournir des étiquettes y manuellement (par exemple, via
plt.ylabel
comme indiqué dans les autres réponses).la source
Il est possible de définir les deux étiquettes avec la
axis.set
fonction. Cherchez l'exemple:la source
.set(xlabel='x axis', ylabel='y axis')
solution car elle me permet de tout mettre sur une seule ligne, contrairement aux méthodes de tracé set_xlabel et set_ylabel. Je me demande pourquoi tous (y compris la méthode set, d'ailleurs) ne renvoient pas l'objet de l'intrigue ou du moins quelque chose qui en a hérité.Pour les cas où vous utilisez
pandas.DataFrame.hist
:Notez que vous obtenez un TABLEAU de parcelles, plutôt qu'un graphique. Ainsi, pour définir l'étiquette x, vous devrez faire quelque chose comme ça
la source
qu'en est-il de ...
la source
pandas
utilisematplotlib
pour les tracés de base de données. Donc, si vous utilisezpandas
pour le tracé de base, vous pouvez utiliser matplotlib pour la personnalisation du tracé. Cependant, je propose ici une méthode alternativeseaborn
qui permet une plus grande personnalisation de l'intrigue sans entrer dans le niveau de base dematplotlib
.Code de travail:
la source