Использовать рисунки matplotlib в другой фигуре matplotlib? - PullRequest
0 голосов
/ 29 марта 2019

Итак, у меня есть функция, которая вводит некоторые данные и возвращает значение matplotlib. Вот как это выглядит (поскольку я имею дело с очень конкретными данными внутри своей функции, я не могу предоставить минимальный рабочий пример, но мой вопрос больше касается общих вещей).

 def foo(data):
     fig, ax= plt.subplots()
     ...
     return fig

Эта функция работает отлично, если я хочу, чтобы изображение появилось, я просто звоню foo(data).show() и все в порядке.

Моя проблема в том, что я хочу в другой части кода (не в том же файле) использовать эти цифры в более общем виде. Например, у меня могут быть foo(data1), foo(data2) и foo(data3), которые я хочу поместить в одну и ту же фигуру matplotlib.

На самом деле, я не знаю, возможно ли это сделать в Matplotlib и как это сделать.

1 Ответ

0 голосов
/ 29 марта 2019

Создайте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...