web-dev-qa-db-fra.com

Comment faire pivoter les étiquettes de ticks de l’axe des abscisses dans Pandas barplot

Avec le code suivant:

import matplotlib
matplotlib.style.use('ggplot')
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({ 'celltype':["foo","bar","qux","woz"], 's1':[5,9,1,7], 's2':[12,90,13,87]})
df = df[["celltype","s1","s2"]]
df.set_index(["celltype"],inplace=True)
df.plot(kind='bar',alpha=0.75)
plt.xlabel("")

J'ai fait cette parcelle:

enter image description here

Comment puis-je faire pivoter les étiquettes de graduation d'axe des abscisses à 0 degré?

J'ai essayé d'ajouter ceci mais cela n'a pas fonctionné:

plt.set_xticklabels(df.index,rotation=90)
55
neversaint

Pass param rot=0 pour faire pivoter les xticks:

import matplotlib
matplotlib.style.use('ggplot')
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({ 'celltype':["foo","bar","qux","woz"], 's1':[5,9,1,7], 's2':[12,90,13,87]})
df = df[["celltype","s1","s2"]]
df.set_index(["celltype"],inplace=True)
df.plot(kind='bar',alpha=0.75, rot=0)
plt.xlabel("")
plt.show()

rendements parcelle:

enter image description here

131
EdChum

La question est claire mais le titre n'est pas aussi précis qu'il pourrait l'être. Ma réponse est pour ceux qui sont venus chercher à changer le axe label, par opposition au étiquettes de ticks, qui est ce que la réponse acceptée est à propos. (Le titre a maintenant été corrigé).

for ax in plt.gcf().axes:
    plt.sca(ax)
    plt.xlabel(ax.get_xlabel(), rotation=90)
8
CPBL

Vous pouvez utiliser set_xticklabels ()

ax.set_xticklabels(df['Names'], rotation=90)
3
Skromak