Matplotlib 垂直选择标签在顶部,而不是底部

Matplotlib 垂直选择标签在顶部,而不是底部,matplotlib,Matplotlib,我想用Pylab绘制一个混乱矩阵。水平轴上的类标签很长,所以我想垂直旋转它们。但是,我也希望在轴的顶部绘制它们,而不是在轴的下方 此命令可以在底部打印垂直标签: pylab.imshow(confusion_matrix) pylab.xticks(..., rotation='vertical') 此命令可以在顶部打印水平标签,而无需旋转: pylab.matshow(confusion_matrix) 但我找不到任何同时兼有这两种功能的东西。以下命令不起作用 pylab.matshow(

我想用Pylab绘制一个混乱矩阵。水平轴上的类标签很长,所以我想垂直旋转它们。但是,我也希望在轴的顶部绘制它们,而不是在轴的下方

此命令可以在底部打印垂直标签:

pylab.imshow(confusion_matrix)
pylab.xticks(..., rotation='vertical')
此命令可以在顶部打印水平标签,而无需旋转:

pylab.matshow(confusion_matrix)
但我找不到任何同时兼有这两种功能的东西。以下命令不起作用

pylab.matshow(confusion_matrix)
pylab.xticks(..., rotation='vertical')
你能建议一种在垂直旋转的轴上用xticks绘制混淆矩阵的方法吗?多谢各位

编辑

马克,谢谢你的帮助。通过更仔细地检查蜱虫的特性,我走上了正确的道路。你的答案和我想要的答案的唯一区别是把这个想法应用到AxeImage上,而不是一个情节上。经过调查,以下是答案:

im = pylab.matshow(confusion_matrix)
for label in im.axes.xaxis.get_ticklabels():
    label.set_rotation(90)
im.figure.show()
对于那些阅读。。。别忘了show()!我忘了我需要刷新该图。请参阅下面的输出


如果我理解正确,这会让你接近。您可能必须用空格“填充”标签,才能将其移出xaxis线

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')

阅读您的帖子,并亲自尝试,我发现了一种非常简单的方法来设置轴顶部的刻度:
pylab.gca().勾选顶部()


干杯

谢谢你的及时回复。我不清楚。我试图在整个图形的顶部绘制标签。例如,pylab.matshow()可以这样做,但标签不能旋转。旋转它们真的很好,因为它使所有内容都更可读,特别是当混淆矩阵很大时。谢谢你的评论。但是,
tick\u top
仅将记号从轴的底部移动到顶部。这也是
matshow
所做的。它不会垂直旋转它们。不过,
tick_top
很高兴知道!