Создайте fig
и ax
вне функции и передайте ax
в качестве параметра со значением по умолчанию (чтобы мы могли создать топор в функции для обеспечения обратной совместимости:
def foo(data, ax=None):
if ax is None:
_, ax = plt.subplots()
Это позволяет вам по-прежнему вызывать foo(data)
, как и раньше.
Если вам необходимо построить эту «функцию» несколько раз, как требуется, то:
fig, axes = plt.subplots(nrows=3)
foo(data1, axes[0])
foo(data2, axes[1])
foo(data3, axes[2])
Если fig
также требуется, либо передать его в качестве параметра функции, либо получить к нему доступ через ax.figure
. Код станет:
def foo(data, ax=None):
if ax is None:
fig, ax = plt.subplots()
else:
fig, ax = ax.figure, ax