我正在尝试编写一个使用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方法,但是我写的函数没有以返回我的行的方式返回注释,所以我不知道该怎么称为方法。欢迎任何建议和想法。
此外,由于这是我在此发布的第一个问题,如果您对问题本身的布局/措辞等有任何建议,请告诉我。谢谢!