Нарисуйте линию от координаты по одной оси до угла оси вставки в matplotlib

#python #python-3.x #matplotlib

#python #python-3.x #matplotlib

Вопрос:

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

 import matplotlib.pyplot as plt

fig, ax = plt.subplots(1)
ax.axis([0,2,0,2])
ax.plot(1.5,1.5, "x")

axins = ax.inset_axes([0.1, 0.1, 0.4, 0.3])
#various things happen, that may change the shape of axins

plt.show()
  

введите описание изображения здесь

Ответ №1:

Найдено решение: ConnectionPatch и преобразование координат оси.

 import matplotlib.pyplot as plt
from matplotlib.patches import ConnectionPatch

fig, ax = plt.subplots(1)
ax.axis([0,2,0,2])
ax.plot(1.5,1.5, "x")

axins = ax.inset_axes([0.1, 0.1, 0.4, 0.3])
#various things happen, that may change the shape of axins

con = ConnectionPatch(xyA=(1.5,1.5), coordsA=ax.transData,
                      xyB=(1,1), coordsB=axins.transAxes)
fig.add_artist(con)

plt.show()
  

введите описание изображения здесь