我想用Pylab绘制一个混淆矩阵.沿水平轴的类标签很长,所以我想绘制它们垂直旋转.但是,我还想将它们绘制在轴的顶部,而不是下面.
此命令可以在底部绘制垂直标签:
pylab.imshow(confusion_matrix)
pylab.xticks(..., rotation='vertical')
Run Code Online (Sandbox Code Playgroud)
并且此命令可以在顶部绘制水平标签而不旋转:
pylab.matshow(confusion_matrix)
Run Code Online (Sandbox Code Playgroud)
但我找不到两者兼而有之.以下命令不起作用.
pylab.matshow(confusion_matrix)
pylab.xticks(..., rotation='vertical')
Run Code Online (Sandbox Code Playgroud)
你能建议一种方法用垂直旋转在轴顶部用xticks绘制混淆矩阵吗?谢谢.
编辑
马克,谢谢你的帮助.通过更仔细地检查刻度属性,它让我走上正轨.与你的答案和我想要的答案的唯一区别是将这个想法应用于AxesImage,而不是绘图.经过调查,这里是答案:
im = pylab.matshow(confusion_matrix)
for label in im.axes.xaxis.get_ticklabels():
label.set_rotation(90)
im.figure.show()
Run Code Online (Sandbox Code Playgroud)
对于那些阅读...不要忘记show()!我忘了我需要刷新数字.见下面的输出.
Mar*_*ark 12
如果我理解正确的话,这会让你接近.您可能需要使用空格"填充"标签,以将其移出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')
Run Code Online (Sandbox Code Playgroud)
编辑回应评论
如果您希望它们在顶部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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18652 次 |
| 最近记录: |