число add_axes to pyplot прикрепляет новую ось к старой оси с той же позицией - PullRequest
0 голосов
/ 11 июля 2019

Когда я пытаюсь добавить ось к фигуре pyplot, используя fig.add_axes в том же месте, где изначально была размещена другая ось, pyplot просто делает ссылку на старую ось.

У меня есть запрос на создание фигуры и добавление оси. В зависимости от запроса добавляются разные оси.

Я попытался установить параметр "which" для ax.set_position в значение "both", "active" и "original", но никто не делает этого.

import matplotlib.pyplot as plt

fig = plt.figure()

ax1 = fig.add_axes([0.07, 0.1, 0.88, 0.2])
ax1.set_position([0.07, 0.3, 0.88, 0.2], which='active')
ax2 = fig.add_axes([0.07, 0.1, 0.88, 0.2])
ax2.set_position([0.07, 0.3, 0.88, 0.5])

# When trying to set position of either figure it simply moves them both
# as ax2 is a reference to ax1
ax1.set_position([0.07, 0.1, 0.88, 0.2])

Как я могу получить его так, чтобы ax2 был независимым объектом, на который нет ссылки на ax1?

1 Ответ

0 голосов
/ 11 июля 2019

Я нашел ответ сам - вот он, если кто-то еще столкнется с подобной проблемой.

Проблема будет исправлена ​​в следующей версии matplotlib, но в то же время, можно обойтиэто путем указания метки для каждой оси.

import matplotlib.pyplot as plt
fig = plt.figure()

ax1 = fig.add_axes([0.07, 0.1, 0.88, 0.2], label='no_1')
ax1.set_position([0.07, 0.3, 0.88, 0.2], which='both')
ax2 = fig.add_axes([0.07, 0.1, 0.88, 0.2], projection=None)
ax2.set_position([0.07, 0.1, 0.88, 0.5], label='no_2')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...