Если ваши сигнатуры функций не должны оставаться такими, как они определены в вашем примере, было бы проще создать вспомогательные участки вне функций и передать соответствующий экземпляр Axes
каждой функции.
def plot_fig_1(vars, args, ax):
# do something
ax.plot(x, y)
def plot_fig_2(vars, args, ax):
# do something
ax.plot(x, y)
fig, ax = plt.subplots(2, 1, sharex=True)
plot_fig_1(..., ax[0])
plot_fig_2(..., ax[1])
Если вам нужно создать фигуру, содержащую только одно из вспомогательных участков, вы можете сделать это с помощью:
fig, ax = plt.subplot()
plot_fig_1(..., ax)
или, если функции должны быть автономными, присвойте аргументу ax
значение по умолчанию ипроверить это внутри функции.
def plot_fig_1(vars, args, ax=None):
if ax is None:
fig, ax = plt.subplot()
# do something
ax.plot(x, y)