Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从pyplot轴列表创建子图_Python_Matplotlib_Plot_Scipy - Fatal编程技术网

Python 从pyplot轴列表创建子图

Python 从pyplot轴列表创建子图,python,matplotlib,plot,scipy,Python,Matplotlib,Plot,Scipy,我想根据从绘图功能获得的轴列表创建一个绘图: import matplotlib.pyplot as plt def func(): x = range(10) y = range(10) plt.plot(x,y) return plt.gca() fig, axs = plt.subplots(nrows=1, ncols=4) for ax in axs: ax = func() plt.show() 但是,我得到的图如下所示,并且在最后一个子图

我想根据从绘图功能获得的轴列表创建一个绘图:

import matplotlib.pyplot as plt
def func():
    x = range(10)
    y = range(10)
    plt.plot(x,y)
    return plt.gca()

fig, axs = plt.subplots(nrows=1, ncols=4)
for ax in axs:
    ax = func()
plt.show()
但是,我得到的图如下所示,并且在最后一个子图中有所有图形:

如果可能,我希望按原样使用绘图功能,而不是更改它。可能吗?非常感谢

多亏了这个解决方案,才能找到:

import matplotlib.pyplot as plt
def func():
    x = range(10)
    y = range(10)
    plt.plot(x,y)
    return plt.gca()

fig, axs = plt.subplots(nrows=1, ncols=4, figsize=(5,3))
for ax in axs:
    plt.sca(ax)
    ax = func()
plt.tight_layout()
plt.show()
现在,我得到:


ax
传递给您的函数并直接对其进行操作。谢谢!我知道这个解决方案,但希望在for循环中设置轴,而不是通过将其传递给函数来操作axes对象。这可能吗?检查
plt.sca()
需要一个轴作为参数。当执行
plt.sca(plt.gca())
时,我得到了与上述相同的结果(当然)Yes
plt.sca(ax)