如何在xarray.DataArray.plot中抑制图例标签?
解决xarray.DataArray.plot设置label=None仍显示图例条目的问题
我来帮你搞定这个小问题!你遇到的是xarray与matplotlib图例交互的一个常见小坑——设置label=None并没有让图例忽略这条曲线,反而还是生成了空的条目。其实matplotlib本身就提供了完美的解决方案:
正确的解决方法
使用matplotlib内置的特殊标签_nolegend_代替None,这个标签会告诉matplotlib直接跳过该曲线的图例条目:
cla() da = xarray.DataArray(arange(6*5).reshape(6,5), dims=("a", "b"), coords={"a": range(6), "b": range(5), "c": ("a", range(6))}) da["c"].plot(label="a") # 用特殊标签禁用图例条目 da["c"].plot(label="_nolegend_") legend()
为什么label=None不起作用?
这是因为xarray的plot方法在处理label=None时,并没有完全阻止图例条目的创建——它会给matplotlib传递一个空的默认标签,而matplotlib会把这种情况识别为“需要显示一个空标签的图例条目”,所以你会看到图例里多出一个空白项。
而_nolegend_是matplotlib专门设计的特殊标记,只要线条的label设置为这个值,legend()调用时就会自动排除这条曲线,完全符合你想要的“抑制图例标签”的效果。
内容的提问来源于stack exchange,提问作者gerrit
相关产品推荐
相关产品推荐

