<p>这个问题似乎是由subblot命令引起的:由于inset plot/axes完全在子blot内,当再次调用subblot时,inset axes/plot被删除。使用add_axes来创建周围的轴而不是子批(3,1,1)修复了这个问题:</p>
<pre><code>import matplotlib.pyplot as plt
import numpy
x_data=numpy.array([0, 1, 1.85, 1.9, 1.95, 2, 2.1, 2.5, 5, 10, 25])
y_data=numpy.array([0, 2.5, 1.8, 0.5, 0.2, 11, 1.2, 0.5, 0.15, 10, 25])
y_data_err=y_data*0.1
number_of_runs=3
index_lim=2
for iterator in range(number_of_runs):
fig666=plt.figure(666,figsize=(22.0/2.54,18.0/2.54))
#############################
# subplot
#ax = plt.subplot(3,1,3)
ax=fig666.add_axes([0.125,0.666,0.775,0.235])
ax.plot(x_data,y_data+iterator*0.2,marker=None)
ax.errorbar(x_data,y_data+iterator*0.2,yerr=y_data_err)
plt.semilogy()
#####################
# zoomed inset to subplot ##
subax1 = fig666.add_axes([0.5,0.71,0.35,0.16])
#subax1.plot(x_data,y_data+iterator*0.2+0.1,marker=None)
subax1.errorbar(x_data,y_data+iterator*0.5,yerr=y_data_err)
plt.xlim(1.87,2.25)
plt.ylim(0,3.7)
plt.show()
ax = plt.subplot(3,1,2)
</code></pre>