Фигура Python и объект осей
У меня большой нерешенный вопрос о matplotlib
Модуль Python.
Если я создаю фигуру под названием [Figure1]
с 2 осями [Ax1, Ax2]
и другая фигура [Figure2]
есть ли функция или метод, который позволит мне экспортировать Ax1
объект из Figure1
и перерисовать его Figure2
объект?
1 ответ
Вообще оси привязаны к фигуре. Причина в том, что matplotlib обычно выполняет некоторые операции в фоновом режиме, чтобы они хорошо выглядели на рисунке.
Есть несколько хакерских способов обойти это, в том числе и этот, но общее мнение, похоже, заключается в том, что следует избегать попыток копировать оси.
С другой стороны, это не должно быть проблемой или ограничением вообще.
Вы всегда можете определить функцию, которая выполняет черчение, и использовать ее на нескольких фигурах, например:
import matplotlib.pyplot as plt
def plot1(ax, **kwargs):
x = range(5)
y = [5,4,5,1,2]
ax.plot(x,y, c=kwargs.get("c", "r"))
ax.set_xlim((0,5))
ax.set_title(kwargs.get("title", "Some title"))
# do some more specific stuff with your axes
#create a figure
fig, (ax1, ax2) = plt.subplots(1,2)
# add the same plot to it twice
plot1(ax1)
plot1(ax2, c="b", title="Some other title")
plt.savefig(__file__+".png")
plt.close("all")
# add the same plot to a different figure
fig, ax1 = plt.subplots(1,1)
plot1(ax1)
plt.show()