Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么此Matplotlib热图有一个额外的空白列?_Python_Matplotlib - Fatal编程技术网

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)就像一个符咒一样,对我也很有用。接得好!将您的评论作为答案发布,我会将其作为错误报告。