无法在Pyplot中删除/更新箭头注释

时间:2018-08-05 02:48:33

标签: python matplotlib

我已经尝试实现我所能找到的有关删除或更新箭头/注释/补丁的所有内容,但似乎没有任何效果。

以下是代码的重要部分:

for i in xrange(lim):

    if 'arrowprops' in kwargs:
        kwap = kwargs.pop('arrowprops')
        ap = {'patchA':text} # Ensure arrow is clipped by the text
        ap.update(kwap) # Add arrowprops from kwargs

    bboxes = get_bboxes(texts, r, (1, 1), ax) #Will give error if you didn't put arrows
    for j, (bbox, text) in enumerate(zip(bboxes, texts)):
        drawArrow = ax.annotate("", # Add an arrow from the text to the point
                xy = (orig_xy[j]),
                xytext=get_midpoint(bbox),
                arrowprops=ap,
                *args, **kwargs) 

    drawArrow.remove() #removed arrows otherwise old arrows remain
    plt.draw()

这是从https://github.com/Santosh-Gupta/adjustText/blob/master/adjustText/init.py此处的第524行到645行

每次进入循环时,箭头端点的位置都不同,但是只是绘制了一个新箭头而没有删除旧箭头,因此图像看起来像这样

https://snag.gy/bDERmr.jpg

我看到.remove()是删除注释的正确方法,并且直到再次绘制绘图才更新它,因此这就是为什么我放入plt.draw()

这很难调试/测试/隔离,因为这是我要更改的python软件包。但是也许还有其他可以解决的变通办法。

0 个答案:

没有答案