ここでは「正しい」答えがたくさんありますが、いくつかの詳細は省略されていると思うので、もう1つ追加します。OPは90度の回転を要求しましたが、0または90以外の角度を使用する場合は水平方向の配置も変更する必要があるため、45度に変更します。そうしないと、ラベルが中心からずれて少し誤解を招くでしょう(そして、ここに来る多くの人が軸を90以外のものに回転させたいと思います)。
最も簡単/最小のコード
オプション1
plt.xticks(rotation=45, ha='right')
前述のように、オブジェクト指向のアプローチを採用する場合は、これは望ましくない場合があります。
オプション2
別の高速な方法(日付オブジェクトを対象としていますが、どのラベルでも機能するようです。ただし、これはお勧めしません):
fig.autofmt_xdate(rotation=45)
fig
あなたは通常から得るでしょう:
fig = plt.figure()
fig, ax = plt.subplots()
fig = ax.figure
オブジェクト指向/直接処理 ax
オプション3a
ラベルのリストがある場合:
labels = ['One', 'Two', 'Three']
ax.set_xticklabels(labels, rotation=45, ha='right')
オプション3b
現在のプロットからラベルのリストを取得したい場合:
# Unfortunately you need to draw your figure first to assign the labels,
# otherwise get_xticklabels() will return empty strings.
plt.draw()
ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha='right')
オプション4
上記に似ていますが、代わりに手動でループします。
for label in ax.get_xticklabels():
label.set_rotation(45)
label.set_ha('right')
オプション5
ここでもpyplot
(plt
)を使用していますが、特定のax
オブジェクトのプロパティを変更しているため、オブジェクト指向です。
plt.setp(ax.get_xticklabels(), rotation=45, ha='right')
オプション6
このオプションは単純ですが、私の知る限り、ラベルの水平方向の配置をこのように設定することはできないため、角度が90度でない場合は別のオプションの方が適している場合があります。
ax.tick_params(axis='x', labelrotation=45)
編集:
この正確な「バグ」の議論があり、修正は潜在的に予定されていv3.2.0
ます:https :
//github.com/matplotlib/matplotlib/issues/13774
ha