原因:matplotlib新版本,subplot.bottom默认为0.1
但是电脑分辨率过低时,这个默认的0.1,导致绘图窗口不足,底部便被剪切了。
解决:设置subplot.bottom为0.15
plt.gcf().subplots_adjust(bottom=0.15)
绘制这个混淆矩阵的例子为:
def plot_confusion_matrix(cm, classes,
title='Confusion matrix',
cmap=plt.cm.Blues):
cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
plt.imshow(cm, interpolation='nearest', cmap=cmap)
plt.title(title)
plt.colorbar()
tick_marks = np.arange(len(classes))
plt.xticks(tick_marks, classes, rotation=45)
plt.yticks(tick_marks, classes)
plt.ylim(len(cm) - 0.5, -0.5)
thresh = cm.max() / 2.
for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
plt.text(j, i, '{:.2f}'.format(cm[i, j]), horizontalalignment="center",
color="white" if cm[i, j] > thresh else "black")
plt.tight_layout()
plt.gcf().subplots_adjust(bottom=0.15)
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()