gpt4 book ai didi

Python:循环内的子图:第一个面板出现在错误的位置

转载 作者:IT老高 更新时间:2023-10-28 20:49:28 28 4
gpt4 key购买 nike

我对 Python 还很陌生,并且从更多的 Matlab 角度来看。我正在尝试制作一系列 2 x 5 面板轮廓子图。到目前为止我的方法一直将我的 Matlab 代码(在一定程度上)转换为 Python,并在循环中绘制我的子图。代码的相关部分如下所示:

fig=plt.figure(figsize=(15, 6),facecolor='w', edgecolor='k')
for i in range(10):

#this part is just arranging the data for contourf
ind2 = py.find(zz==i+1)
sfr_mass_mat = np.reshape(sfr_mass[ind2],(pixmax_x,pixmax_y))
sfr_mass_sub = sfr_mass[ind2]
zi = griddata(massloclist, sfrloclist, sfr_mass_sub,xi,yi,interp='nn')


temp = 250+i # this is to index the position of the subplot
ax=plt.subplot(temp)
ax.contourf(xi,yi,zi,5,cmap=plt.cm.Oranges)
plt.subplots_adjust(hspace = .5,wspace=.001)

#just annotating where each contour plot is being placed
ax.set_title(str(temp))

作为这个论坛的新手,我似乎不允许附加生成的图像。但是,通过我在代码中的索引为“temp”,2 x 5 面板的结果布局是:

251 - 252 - 253 - 254 - 255
256 - 257 - 258 - 259 - 250

然而,我想要的是

250 - 251 - 252 - 253 - 254
255 - 256 - 257 - 258 - 259

也就是说,第一个面板 (250) 出现在我认为 259 应该出现的最后一个位置。 251 似乎是我想要放置 250 的地方。它们似乎都在正确的顺序中,只是循环移动了一个。

我知道这会很愚蠢,但感谢您提供的任何帮助。

提前谢谢你。

最佳答案

将您的代码与一些随机数据一起使用,这将起作用:

fig, axs = plt.subplots(2,5, figsize=(15, 6), facecolor='w', edgecolor='k')
fig.subplots_adjust(hspace = .5, wspace=.001)

axs = axs.ravel()

for i in range(10):

axs[i].contourf(np.random.rand(10,10),5,cmap=plt.cm.Oranges)
axs[i].set_title(str(250+i))

布局有点乱,但这是因为您当前的设置(figsize、wspace 等)。

enter image description here

关于Python:循环内的子图:第一个面板出现在错误的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17210646/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com