Python 如何使用matplotlib将插入轴添加到子地块
我试图在matplotlib中绘制多个子图,每个子图都应该有一个插入轴。我可以使用mpl_toolkits.axes_grid.inset_locator.inset_axes()使代码示例适用于添加了插入轴的单轴,并且我可以在没有插入轴的情况下精细地绘制子地块,但是当尝试对循环中的子地块执行相同操作时,我得到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
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%")