for 循环中的子图不会出现在 Python 中
Subplots in forloop do not appear in Python
在下面的代码中,很明显我们有子图。第一个 for 循环生成 8 个图或 4 个图和 2 个子图 (4 *2 = 8
)。但问题是在这段代码中显示了第一个图而其他图没有出现。怎么看for x in range(len(ng))
.
的所有剧情
fig, (ax1,ax2) = plt.subplots(1,2)
for x in range(len(ng)):
for xx in range(1,819):
Ju_list=[]
ET_list=[]
ET1_list=[]
Unu_list=[]
z_list=[]
uf_list=[]
for z in np.arange(1,7):
Ju = dfimppara.iloc[xx, 1]
Jl = dfimppara.iloc[xx, 2]
lim = Ju - Jl
if lim > 1:
pass
else:
if Ju<7:
Ju_list.append(dfimppara.iloc[xx, 1])
ET_list.append(ET(xx, z, ng[x], 1e-24, Tg[x], 1)/(2.73*(1+z)))
ET1_list.append(ET(xx, z, ng[x], 1e-20,Tg[x], 1)/(2.73*(1+z)))))
z_list.append(z)
ax1.plot(z_list, ET_list)#,label="test1")
ax1.title.set_text(f'Fig1:Tg={Tg[x]}')
ax2.plot(z_list, ET1_list)
ax2.title.set_text(f'Fig1:Tg={Tg[x]}')
#ax1.plot(Ju_list, Unu_list)
else:
pass
plt.show()
您在开始时使用 fig, (ax1,ax2) = plt.subplots(1,2)
只创建了一个图形。我认为你想要做的是创建 len(ng)
个数字:
for x in range(len(ng)):
fig, (ax1,ax2) = plt.subplots(1,2)
for xx in range(1,819):
Ju_list=[]
ET_list=[]
ET1_list=[]
Unu_list=[]
z_list=[]
uf_list=[]
for z in np.arange(1,7):
Ju = dfimppara.iloc[xx, 1]
Jl = dfimppara.iloc[xx, 2]
lim = Ju - Jl
if lim > 1:
pass
else:
if Ju<7:
Ju_list.append(dfimppara.iloc[xx, 1])
ET_list.append(ET(xx, z, ng[x], 1e-24, Tg[x], 1)/(2.73*(1+z)))
ET1_list.append(ET(xx, z, ng[x], 1e-20,Tg[x], 1)/(2.73*(1+z)))))
z_list.append(z)
ax1.plot(z_list, ET_list)#,label="test1")
ax1.title.set_text(f'Fig1:Tg={Tg[x]}')
ax2.plot(z_list, ET1_list)
ax2.title.set_text(f'Fig1:Tg={Tg[x]}')
#ax1.plot(Ju_list, Unu_list)
else:
pass
plt.show()
在下面的代码中,很明显我们有子图。第一个 for 循环生成 8 个图或 4 个图和 2 个子图 (4 *2 = 8
)。但问题是在这段代码中显示了第一个图而其他图没有出现。怎么看for x in range(len(ng))
.
fig, (ax1,ax2) = plt.subplots(1,2)
for x in range(len(ng)):
for xx in range(1,819):
Ju_list=[]
ET_list=[]
ET1_list=[]
Unu_list=[]
z_list=[]
uf_list=[]
for z in np.arange(1,7):
Ju = dfimppara.iloc[xx, 1]
Jl = dfimppara.iloc[xx, 2]
lim = Ju - Jl
if lim > 1:
pass
else:
if Ju<7:
Ju_list.append(dfimppara.iloc[xx, 1])
ET_list.append(ET(xx, z, ng[x], 1e-24, Tg[x], 1)/(2.73*(1+z)))
ET1_list.append(ET(xx, z, ng[x], 1e-20,Tg[x], 1)/(2.73*(1+z)))))
z_list.append(z)
ax1.plot(z_list, ET_list)#,label="test1")
ax1.title.set_text(f'Fig1:Tg={Tg[x]}')
ax2.plot(z_list, ET1_list)
ax2.title.set_text(f'Fig1:Tg={Tg[x]}')
#ax1.plot(Ju_list, Unu_list)
else:
pass
plt.show()
您在开始时使用 fig, (ax1,ax2) = plt.subplots(1,2)
只创建了一个图形。我认为你想要做的是创建 len(ng)
个数字:
for x in range(len(ng)):
fig, (ax1,ax2) = plt.subplots(1,2)
for xx in range(1,819):
Ju_list=[]
ET_list=[]
ET1_list=[]
Unu_list=[]
z_list=[]
uf_list=[]
for z in np.arange(1,7):
Ju = dfimppara.iloc[xx, 1]
Jl = dfimppara.iloc[xx, 2]
lim = Ju - Jl
if lim > 1:
pass
else:
if Ju<7:
Ju_list.append(dfimppara.iloc[xx, 1])
ET_list.append(ET(xx, z, ng[x], 1e-24, Tg[x], 1)/(2.73*(1+z)))
ET1_list.append(ET(xx, z, ng[x], 1e-20,Tg[x], 1)/(2.73*(1+z)))))
z_list.append(z)
ax1.plot(z_list, ET_list)#,label="test1")
ax1.title.set_text(f'Fig1:Tg={Tg[x]}')
ax2.plot(z_list, ET1_list)
ax2.title.set_text(f'Fig1:Tg={Tg[x]}')
#ax1.plot(Ju_list, Unu_list)
else:
pass
plt.show()