我想用Matplotlib创建一个可拖动的注解框。但是,我的ax
是在SubFigure
对象上定义的,而不是在Figure
上。
下面的简短代码显示了在这种情况下如何无法拖动文本框(除非它位于绘图区域的“外部”):
import matplotlib.pyplot as plt
fig = plt.figure()
subfig = fig.subfigures()
ax = subfig.add_subplot()
bbox_args = dict(boxstyle="round", facecolor="wheat")
an1 = ax.annotate("Text is outside, so draggable", xy=(0.5, 1.1), xycoords=ax.transAxes, bbox=bbox_args)
an2 = ax.annotate("Text is inside, so not draggable", xy=(0.3, 0.5), xycoords=ax.transAxes, bbox=bbox_args)
an1.draggable()
an2.draggable()
plt.show()
事实上,一旦你拖动外部文本框并将其留在内部,它将永远卡在那里!
如果不依赖于subfig
,这两个盒子都是可拖动的,但是如何使用subfig
呢?
1条答案
按热度按时间00jrzges1#
我从头开始写的。代码分为两个文件:
以下是在annotationbox.py中找到的类:
你必须硬编码坐标。
这是主代码:
我希望这对你有帮助!