#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()