Matplotlib - 改变图形大小的边界(使用imshow)

时间:2017-08-10 17:04:53

标签: python matplotlib border figure imshow

我有下面的代码(下面)来制作一个图(一个混淆矩阵),我希望在正方形之间有黑线,如下所示:

代码

import numpy as np
import matplotlib as mpl
from matplotlib.backends.backend_pgf import FigureCanvasPgf
mpl.backend_bases.register_backend('pdf', FigureCanvasPgf)
pgf_with_rc_fonts = {'figure.figsize': (15,9.3)} # Usually much longer.
mpl.rcParams.update(pgf_with_rc_fonts)
import matplotlib.pylab as plt
cm = np.array([[0.4, 0.6], [0.9, 0.1]])
classes = ['False', 'True']
plt.clf()
cmap = cmap=plt.cm.Blues
plt.imshow(cm, interpolation='none', cmap=cmap, aspect='equal', vmax=1, vmin=0)
plt.colorbar()
tick_marks = np.arange(len(classes))
plt.xticks(tick_marks, classes)
plt.yticks(tick_marks, classes)
plt.gca().set_xticks(np.arange(-.5, len(tick_marks), 1), minor=True)
plt.gca().set_yticks(np.arange(-.5, len(tick_marks), 1), minor=True)
plt.gca().grid(which='minor', color='k', linestyle='-')
plt.gca().tick_params('both', length=0, width=1, which='minor')

图解

这会产生以下情节:

Original

问题区域

令人讨厌的是:要么盒子的高度不正确,要么y轴次要滴答太低。我不确定哪个,但它给出了丑陋的边框

Ugly

但是,当我删除参数'figure.figsize': (15,9.3)时,这不会发生。我不确定出了什么问题,但是我想要更大的图形尺寸以获得更好的图,所以我可以使用更大的交互式图。

0 个答案:

没有答案