我需要通过循环迭代绘制图形的子图;每个迭代调用另一个模块(即另一个.py文件中定义的函数),该函数会绘制一对子图。以下是我尝试过但不起作用的方法:
1)在循环之前,使用适当数量的行和2列创建一个图形:
import matplotlib.pyplot as plt
fig, axarr = plt.subplots(nber_rows,2)
2)在循环内,在迭代次数iter_nber时,调用绘制每个子图的函数:
fig, axarr = module.graph_function(fig,axarr,iter_nber,some_parameters, some_data)
3)所讨论的函数基本上是这样的;每个迭代都在同一行上创建一对子图:
def graph_function(fig,axarr,iter_nber,some_parameters, some_data):
axarr[iter_nber,1].plot(--some plotting 1--)
axarr[iter_nber,2].plot(--some plotting 2--)
return fig,axarr
这并不起作用。我最终得到了一个空的图形,循环结束时出现这种情况。我尝试过各种组合,比如只在函数的返回参数中留下axarr,但都没有成功。显然,我不理解这个图形及其子图的逻辑。
非常感谢任何建议。
axarr[iter_nber,2]
中的索引2
。这应该会抛出一个错误。 - hitzgx [2]
是x中的第三项,而不是第二项。您发布的代码似乎基本正确。错误可能是由于一些相当平凡的事情导致的,这些事情在您发布的代码中没有显示出来。 - Joe Kington