2014-02-05 48 views
3

我正在使用一个外部模块,它会自动将图例添加到图中。 我想知道是否有关闭图例的方法,比如ax.set_legend(False)。matplotlib取消轴对象上的图例

我可以盗号模块修复它,但我宁愿不这么做。

例如:

f = plt.figure() 
ax = f.add_subplot(111) 

externalfunction(ax) 

# in the function ax.legend() has been called 
# would like to turn off the legend here 

plt.show() 

更新:

我提出这个 https://github.com/matplotlib/matplotlib/issues/2792

+1

你能为此做一个github问题吗?它看起来像传奇艺术家是不可移动的,但它应该是。 – tacaswell

+0

是必要的吗?我觉得xndrme的回答是我所需要的。 – Anake

+0

@Anake tcaswell的建议是,以改善将来使用的框架,你可以用我的解决方案,但它不应该是这个样子;) –

回答

3

你需要改变你的传奇的可视性GitHub的问题,试试这个:ax.legend().set_visible(False)

+0

这会重新生成图例,然后使其不可见。 – tacaswell

+0

@tcaswell(+1对你对这个问题的评论)我用这个黑客来隐藏传说,它应该是GitHub上的一个问题 –

3

这也可以通过将轴的legend_属性设置为None。注意尾部下划线。例如。

x, y = np.random.randn(2, 30) 
ax = plt.gca() 
ax.plot(x, y, label="data") 
ax.legend() 
ax.legend_ = None 

这听起来像未来matplotlib版本将有一个更正式认可的方法去除轴,但这应该在此期间,工作/如果停留在旧版本。