如何在 matplotlib 图形之上创建用户创建的文本框?

How to create a user created textbox on top of matplotlib figure?

背景

我正在将这个软件正确地绘制数据作为箱线图和散点图。为了使图表信息量更大、更清晰,我希望用户能够在想要添加注释时在图表顶部拖动创建一个文本框。这样,当人们共享图形时,可以通过这些注释对其进行解释。

当前的方法和问题

我已经使用注释功能在屏幕的右上角创建了一个文本框来告诉用户已经使用了多少数据点,但是这种方法几乎没有问题。

这是我用来创建文本框以告诉用户有多少个数据点的代码。

self.axes.text(.98, .98, 'Number of Data Points: {}'.format(len(self.cleanedY)),
                   verticalalignment='top', horizontalalignment='right',
                    transform=self.axes.transAxes,
                   color='black', fontsize=9.5)
  1. 必须询问用户的大量输入。这包括位置坐标、实际文本框、对齐类型。
  2. 我知道如何收集这些信息的唯一方法是创建一个 Qdialog window 提示所有这些输入,这太麻烦了。
  3. 用户无法自由定位文本框,并且必须知道精确的小数位数才能将文本框定位在图形上。

这是难以置信的低效和不灵活。我想要一种方法让用户可以轻松地在绘图上创建这些注释。

TLDR:有什么方法可以开发简单的拖动并在绘图上创建文本框选项吗?

我不确定这是否是您要找的,但我在网上找到了这个类似的示例。它不允许用户创建文本框,但会向图形添加注释并允许您移动它们。

这是link

http://scipy-cookbook.readthedocs.io/items/Matplotlib_Drag_n_Drop_Text_Example.html