垂直の xtick ラベルは下ではなく上にあります 質問する

垂直の xtick ラベルは下ではなく上にあります 質問する

Pylab を使用して混同行列をプロットしたいと思います。水平軸に沿ったクラス ラベルは長いので、垂直に回転してプロットしたいと思います。ただし、軸の下ではなく上にプロットしたいと思います。

このコマンドは、下部に垂直ラベルをプロットできます。

pylab.imshow(confusion_matrix)
pylab.xticks(..., rotation='vertical')

このコマンドは、回転せずに上部に水平ラベルをプロットできます。

pylab.matshow(confusion_matrix)

しかし、両方を実行するものは見つかりません。次のコマンドは機能しません。

pylab.matshow(confusion_matrix)
pylab.xticks(..., rotation='vertical')

垂直回転の軸の上に xticks を付けて混同行列をプロットする方法を提案していただけますか? ありがとうございます。

編集

マークさん、助けてくれてありがとう。ティック プロパティを詳しく調べることで、正しい方向に進みました。あなたの回答と私が望んでいた回答の唯一の違いは、そのアイデアをプロットではなく AxesImage に適用することです。調査の結果、答えは次のとおりです。

im = pylab.matshow(confusion_matrix)
for label in im.axes.xaxis.get_ticklabels():
    label.set_rotation(90)
im.figure.show()

これを読んでいる皆さん、show() を忘れないでください。図を更新する必要があることを忘れていました。以下の出力を参照してください。

垂直ラベル付きの混同行列。http://up.stevetjoa.com/rotate_ticklabels.png

ベストアンサー1

私が正しく理解していれば、これで近い結果が得られるでしょう。ラベルを x 軸の線から外すには、ラベルにスペースを入れて「埋め込む」必要があるかもしれません。

from matplotlib import pylab 
pylab.plot([0, 6], [0, 6])
pylab.xticks([1,2,3,4,5,6],('one','two','three','four','five','six'),rotation='vertical',verticalalignment='bottom')

コメントへの返信として編集

上部の x 軸で垂直に回転させたい場合は、次を試してください。

pylab.plot([0, 6], [0, 6])
pylab.xticks([1,2,3,4,5,6],('one','two','three','four','five','six'))
for tick in pylab.gca().xaxis.iter_ticks():
    tick[0].label2On = True
    tick[0].label1On = False
    tick[0].label2.set_rotation('vertical')

おすすめ記事