我有四个混淆矩阵在pyplot中绘图。以下是我的代码和结果图:
confmatmap=cm.YlOrBr
fig = plt.figure()
plt.clf()
ax = fig.add_subplot(221)
ax.set_aspect(1)
res = ax.imshow(np.array(norm_conf_1), cmap=confmatmap, interpolation='nearest')
plt.xticks(range(2), ['T', 'F']); plt.yticks(range(2), ['T', 'F'])
ax = fig.add_subplot(222)
ax.set_aspect(1)
res = ax.imshow(np.array(norm_conf_2), cmap=confmatmap, interpolation='nearest')
plt.xticks(range(2), ['','']);plt.yticks(range(2), ['','']);
ax = fig.add_subplot(223)
ax.set_aspect(1)
res = ax.imshow(np.array(norm_conf_3), cmap=confmatmap, interpolation='nearest')
plt.xticks(range(2), ['','']);plt.yticks(range(2), ['','']);
ax = fig.add_subplot(224)
ax.set_aspect(1)
res = ax.imshow(np.array(norm_conf_4![enter image description here][2]), cmap=confmatmap, interpolation='nearest')
plt.xticks(range(2), ['','']);plt.yticks(range(2), ['','']);
fig.subplots_adjust(left=0, bottom=0, right=1, top=1,wspace=0, hspace=0.1)
但左侧子图和右侧图之间的差距对我来说太大了。我希望垂直和水平间隙都是大致一个字符的大小。
我可以通过将hspace
设置为非常小的值来缩小上下子图之间的差距,但wspace
不起作用。
我认为这可能是因为子图有一些白色的空白部分。
如何在这里缩小任何指定值的差距?
答案 0 :(得分:1)
尝试:
fig = plt.figure(figsize=(4, 4))
在开头,你的代码应该工作。问题似乎是与其内容不兼容的数字大小,因此无法同时尊重wspace
和hspace
。
答案 1 :(得分:0)
您使用fig.subplots_adjust(left=0, bottom=0, right=1, top=1)
正确的方式。
例如,通过将left设置为非零,您可以向左移动左侧两个子图,即向右移动两个子图。因此,减小子图之间的宽度。
这将在图的左侧创建额外的空白区域,因为总大小不会改变。保存图片时,您可以通过添加选项bbox_inches = "tight"
您可以使用的另一件事是:
fig.tight_layout()