Matplotlib 扩大情节
Posted
技术标签:
【中文标题】Matplotlib 扩大情节【英文标题】:Matplotlib widen plot 【发布时间】:2017-08-02 19:11:17 【问题描述】:我正在绘制 sklearn 分类报告,生成的图非常狭窄,标签难以阅读。我使用帖子here 来获取绘图代码。
关于如何水平拉伸这个情节有什么建议吗?谢谢
def plot_classification_report(cr, title='Classification report ', with_avg_total=False, cmap=plt.cm.Blues):
lines = cr.split('\n')
classes = []
plotMat = []
for line in lines[2 : (len(lines) - 3)]:
#print(line)
t = line.split()
# print(t)
classes.append(t[0])
v = [float(x) for x in t[1: len(t) - 1]]
#print(v)
plotMat.append(v)
if with_avg_total:
aveTotal = lines[len(lines) - 1].split()
classes.append('avg/total')
vAveTotal = [float(x) for x in t[1:len(aveTotal) - 1]]
plotMat.append(vAveTotal)
plt.imshow(plotMat, interpolation='nearest', cmap=cmap)
plt.title(title)
plt.colorbar()
x_tick_marks = np.arange(3)
y_tick_marks = np.arange(len(classes))
plt.xticks(x_tick_marks, ['precision', 'recall', 'f1-score'], rotation=45)
plt.yticks(y_tick_marks, classes)
#plt.tight_layout()
plt.ylabel('Classes')
plt.xlabel('Measures')
plot_classification_report(classification_report(y_test, y_pred))
【问题讨论】:
【参考方案1】:默认情况下,坐标区将具有图像的纵横比。您可以通过将aspect
参数更改为imshow
来更改它。
要么把它放到"auto"
,让图像扩展到轴的给定空间。
或者,将其设置为任意数字,表示高宽比; number == height/width
。
在这种情况下尝试
plt.imshow(plotMat, interpolation='nearest', cmap=cmap, aspect="auto")
或
plt.imshow(plotMat, interpolation='nearest', cmap=cmap, aspect=len(classes)/12.)
并根据您的需要进行调整。
【讨论】:
以上是关于Matplotlib 扩大情节的主要内容,如果未能解决你的问题,请参考以下文章