web-dev-qa-db-ja.com

Pandas barplotでx軸の目盛りラベルを回転させる方法

次のコードで:

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("")

私はこのプロットを作りました:

enter image description here

X軸の目盛りラベルを0度に回転するにはどうすればよいですか?

これを追加しようとしましたが、機能しませんでした:

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

Param rot=0 を渡して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()

収量プロット:

enter image description here

131
EdChum

質問は明確ですが、タイトルは可能な限り正確ではありません。私の答えは、tickラベル、ではなく、axislabelを変更しようとしてきた人向けです。受け入れられている答えが何であるかです。 (タイトルは修正されました)。

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

Set_xticklabels()を使用できます

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