Python 如何使用matplotlib将插入轴添加到子地块

Python 如何使用matplotlib将插入轴添加到子地块,python,matplotlib,subplot,Python,Matplotlib,Subplot,我试图在matplotlib中绘制多个子图,每个子图都应该有一个插入轴。我可以使用mpl_toolkits.axes_grid.inset_locator.inset_axes()使代码示例适用于添加了插入轴的单轴,并且我可以在没有插入轴的情况下精细地绘制子地块,但是当尝试对循环中的子地块执行相同操作时,我得到TypeError:“AxesHostAxes”对象在第二个子批上不可调用。这似乎有点奇怪,它应该在number\u of_plots为==1,而不是>1时工作。我应该怎么做,还是一个bu

我试图在matplotlib中绘制多个子图,每个子图都应该有一个插入轴。我可以使用mpl_toolkits.axes_grid.inset_locator.inset_axes()使代码示例适用于添加了插入轴的单轴,并且我可以在没有插入轴的情况下精细地绘制子地块,但是当尝试对循环中的子地块执行相同操作时,我得到
TypeError:“AxesHostAxes”对象在第二个子批上不可调用
。这似乎有点奇怪,它应该在
number\u of_plots
为==1,而不是>1时工作。我应该怎么做,还是一个bug?(
matplotlib.\uuuuuuuuuuuuuuuu版本
为'1.5.1')

面向未来读者:显示在matplotlib中创建插入的方法


对这个问题的具体回答是:它不是一个bug。您正在重新定义插入轴

在行
inset\u axes=inset\u axes(…)
之前,
inset\u axes
是来自
mpl\u工具箱.axes\u网格.inset\u定位器的函数。之后,
inset_axes
是该函数的返回,它是一个
AxesHostAxes

当然,一般的建议是:不要调用与您在代码中导入或使用的函数同名的变量。

具体解决办法是:

ax_ins = inset_axes(ax, width="30%",  height="30%")
ax_ins = inset_axes(ax, width="30%",  height="30%")