Python 为什么此Matplotlib热图有一个额外的空白列?
题目本身就说明了这一点。请看一下此代码生成的图形。嗯Python 为什么此Matplotlib热图有一个额外的空白列?,python,matplotlib,Python,Matplotlib,题目本身就说明了这一点。请看一下此代码生成的图形。嗯 data = np.random.randn(20*15) matrix = data.reshape((20,15)) xlabels = range(15) ylabels = range(20) fig, ax = plt.subplots(figsize=(13,10)) heatmap = ax.pcolor( matrix, cmap=mpl.cm.PiYG, vmax=max(data), vmin=min(data))
data = np.random.randn(20*15)
matrix = data.reshape((20,15))
xlabels = range(15)
ylabels = range(20)
fig, ax = plt.subplots(figsize=(13,10))
heatmap = ax.pcolor( matrix, cmap=mpl.cm.PiYG, vmax=max(data), vmin=min(data))
plt.xticks(xlabels)
plt.yticks(ylabels)
plt.colorbar(heatmap)
(从评论中做出回答)
我怀疑这与
matplotlib
内部的int
到float
转换错误有关。也就是说,matplotlib
认为x
限制是(0,15.0…01),并将它们四舍五入到(0,16),而不是将它们保持在(0,15)。如果将其显式设置为
ax.set_xlim(0, 15)
或者,如果将数组大小中的
15
更改为20
,则没有白色列。也许值得在matplotlib
上提交一个bug,我怀疑它与内部的int/float转换错误有关。也就是说,matplotlib
认为x
限制是(0,15.0…01)而不是(0,15)。如果显式地设置它(ax.set_xlim(0,15)
),或者在数组大小中将15
更改为20
,则不存在白色列。也许值得在matplotlib
@fjarri上安装一个bug。set_xlim(0,15)就像一个符咒一样,对我也很有用。接得好!将您的评论作为答案发布,我会将其作为错误报告。