Вчера я задал вопрос , основанный на заблуждении.Теперь я лучше знаю, что на самом деле я спрашиваю.
Я хочу нарисовать стрелку между двумя осями И иметь рядом текст, как я нарисовал здесь вручную:

import matplotlib.pyplot as plt
from matplotlib import patches
import numpy as np
fig = plt.figure()
X, Y = np.mgrid[-1:1:.1, -1:1:.1]
Z = X+Y
ax1 = fig.add_subplot(311)
ax2 = fig.add_subplot(313)
ax1.contourf(X, Y, Z)
ax2.contourf(X, Y, -Z)
con = patches.ConnectionPatch((0,0),
(0,0),
coordsA="data",
coordsB="data",
arrowstyle="<|-",
mutation_scale=20,
axesA=ax2,
axesB=ax1)
ax2.add_artist(con)
fig.show()
Наличие стрелок с текстом рядом с ними в пределах Одной оси можно сделать с помощью ax.annotate()
.Рисование стрелок между осями может быть сделано с помощью ConnectionPatch
.Однако в документах говорится:
ConnectionPatch похож на аннотацию без текста.Хотя функция аннотирования рекомендуется в большинстве ситуаций, ConnectionPatch полезен, когда вы хотите соединить точки на разных осях.
Итак, это звучит так, как если бы они оба (стрелка между осями итекст) не рассматривается API в удобной для пользователя форме.
Хорошо ... но должен быть хотя бы приемлемый способ справиться с этим, верно?Ответ на мой вчерашний вопрос был основан на моем заблуждении.Итак, я надеюсь, что есть лучшее решение, основанное на этом моем перефразированном вопросе.
Итак, есть ли надежный способ добавить текст к стрелке между осями (например, ConnectionPatch
), без суетывокруг с координатами и ax.text
или такая ерунда?