利润matplotlib.pyplot.imshow在子地块环境中使用时

2024-10-03 09:08:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用imshow在一个图形的单独绘图中绘制几个数组的值。在

当我只绘制一个图像时,使用plt.imshow公司()命令的范围正确,图形就完美地显示出来了。 但是,当我尝试在同一个图形中创建此图像的多个绘图时,使用plt.子批次(),这些绘图都以不正确的x轴设置结束,并且有白色页边距。我尝试用set xlim()命令更正x轴范围,但没有效果(我也不明白)。在

最小工作样本如下-任何帮助将不胜感激!在

from matplotlib import pyplot as plt
import numpy as n

image = n.array([[ 1.,  2.,  2.,  5.],
   [ 1.,  0.,  0.,  3.],
   [ 1.,  2.,  0.,  2.],
   [ 4.,  2.,  3.,  2.]])
xextent, yextent= n.shape(image)

fig, ax = plt.subplots(2,sharex=True, sharey=True)
im0 = ax[0].imshow(image, extent=(0,xextent,yextent,0),interpolation='nearest');
ax[0].set_xlim([0,4])
im1 = ax[1].imshow(image, extent=(0,xextent,yextent,0),interpolation='nearest');
ax[1].set_xlim([0,4])

plt.show()

enter image description here


Tags: 图像imageimport命令图形绘图as绘制
2条回答

所以选择是:

  1. 删除sharex/sharey关键字-似乎与子批环境中的imshow冲突。(建议人xnx

  2. 使用带有适当设置的plt.subplots_adjust,与plt.gcf().tight_layout()(由mwormser建议)

  3. 在子批次环境中使用pcolormesh而不是imshow。

我相信空白的原因是窗户的大小。你可以改变窗口大小(你必须计算出数字),也可以调整子窗口。我发现这是通过玩“配置子窗口”按钮在图像弹出窗口。在

plt.subplots_adjust(right=0.4)

有了这一行,绘图将没有空白,但仍有一些空白(您可以通过调整窗口大小来修复)。在

相关问题 更多 >