У меня есть проблемы с доступом к существующему подзаговору в фигуре Matplotlib при указании местоположений участков с использованием gridspec напрямую или, альтернативно, subplot2grid. Регулярные спецификации подзаголовков, например. add_subplot (211), возвращает существующие оси, если они есть. Использование gridspec/subplot2grid, похоже, уничтожает любые существующие оси. Как получить существующие объекты осей с помощью gridspec/subplot2grid? Является ли это предполагаемым поведением или я что-то упустил? Я хотел бы получить решение, где мне не нужно определять собственные заполнители для объектов осей.Как существующие оси подзаголовка извлекаются с использованием subplot2grid/gridspec в Matplotlib?
Пример:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
x = np.linspace(0,10,100)
y1 = np.cos(x)
y2 = np.sin(x)
fig = plt.figure()
ax = fig.add_subplot(211)
ax.plot(x,y1, '-b')
ax = fig.add_subplot(212)
ax.plot(x,y2, '-b')
ax = fig.add_subplot(211) #here, the existing axes object is retrieved
ax.plot(x,y2, '-r')
fig = plt.figure()
gs = gridspec.GridSpec(2,1)
ax = fig.add_subplot(gs[0,0])
ax.plot(x,y1, '-b')
ax = fig.add_subplot(gs[1,0])
ax.plot(x,y2, '-b')
# using gridspec (or subplot2grid), existing axes
# object is apparently deleted
ax = fig.add_subplot(gs[0,0])
ax.plot(x,y2, '-r')
plt.show()
Самый простой способ - просто сохранить ссылку на них самостоятельно. – tacaswell
Да, легко сделано, и я догадываюсь, что до сих пор буду придерживаться этого решения. Единое поведение для add_plot и т. Д. Для различных способов указания формата подзадачи по-прежнему требуется, хотя ИМО. – bach
Лучшее место, чтобы выразить эту точку зрения в вопросе о github;) – tacaswell