Python 如何在另一个pyplot.SubPlot数组中并排分配一些matplotlib.axes.\u subPlot.AxesSubplot

Python 如何在另一个pyplot.SubPlot数组中并排分配一些matplotlib.axes.\u subPlot.AxesSubplot,python,matplotlib,subplot,side-by-side,Python,Matplotlib,Subplot,Side By Side,我有一个函数,返回matplotlib.axes.\u子地块对象,我想将其中一些输出并排放在另一个子地块中,但我分别获得这些对象的绘图,并为新子地块获得一个空绘图。我要找的只是一个包含4个情节的情节。我知道如何通过将项目逐个添加到子地块来并排绘制,但我想看看是否可以将Axis对象指定给其他对象,如以下代码: import matplotlib.pyplot as plt import numpy as np def plot_sub(x , y, title): fig, ax=plt.

我有一个函数,返回matplotlib.axes.\u子地块对象,我想将其中一些输出并排放在另一个子地块中,但我分别获得这些对象的绘图,并为新子地块获得一个空绘图。我要找的只是一个包含4个情节的情节。我知道如何通过将项目逐个添加到子地块来并排绘制,但我想看看是否可以将Axis对象指定给其他对象,如以下代码:

import matplotlib.pyplot as plt
import numpy as np
def plot_sub(x , y, title):
    fig, ax=plt.subplots(figsize=(5, 4))
    ax.plot(x,y)
    ax.set_xlabel('x')
    ax.set_ylabel('y')
    ax.set_title(title)
    return ax 
x=range(0,10)
y=[np.random.uniform(0,1,10) for i in range(4)]
fig1, ax1=plt.subplots(nrows=2,ncols=2)
for i in range(2):
    for j in range(2):
        ax1[i,j]=plot_sub(x,y[j+2*i], f'{i},{j}')
plt.show()


强烈建议对此进行重构,以便绘图方法接受轴作为参数。然后在方法之外创建图形和轴。你不能真的将一个轴从一个图形移动到另一个图形。@JodyKlymak,谢谢,我知道并尝试过这种方法,但我不明白为什么这种方法不起作用,因为一个轴有一个图形作为父图形,不能被其他父图形采用。这只是一条单行道。我想理论上这是不需要的(你可以把任何艺术家看作是一个独立的东西),但实际上matplotlib不允许移动艺术家。