在matplotlib中打开和关闭注释

时间:2015-07-17 18:56:32

标签: python

我正在尝试编写一个使用matplotlib的python脚本。我们的想法是,当用户运行脚本时,会弹出一个交互式窗口,可以使用matplotlib提供的CheckButtons打开和关闭某些图表。我设法弄清楚如何改变绘图本身的可见性,但是,我正在努力为注释做同样的事情。对于这些行,我有以下代码:

def plotsetlines(lines,toggle):
    """ plot vertical, labeled lines """
    x = []
    lmin = 4
    lmax = 6
    for name in lines:
        x.append(lines[name])
        plt.annotate(s=name, xy=(lines[name], lmax), xytext=(lines[name], lmax+1.1), rotation=90,size='large', visible=toggle)
    print x
    return plt.vlines(x, lmin, lmax, lw=2,visible=toggle)

这里的行是一种形式的字典:

lines1 = {"a":115.27, "b":115.0, "c":112.0}

和toggle是一个布尔值。调用此函数后,我可以按如下方式更改行的可见性:

lns1 = plotsetlines(lines1,True)
lns1.set_visible(not lns1.get_visible())

问题是,我不知道如何轻松地为我的注释做同样的事情。我知道Annotate对象也有get / set_visible方法,但是我写的函数没有以返回我的行的方式返回注释,所以我不知道该怎么称为方法。欢迎任何建议和想法。

此外,由于这是我在此发布的第一个问题,如果您对问题本身的布局/措辞等有任何建议,请告诉我。谢谢!

0 个答案:

没有答案