在 xarray.DataArray.plot 中隐藏标签

suppress label in xarray.DataArray.plot

我正在使用 xarray.DataArray.plot 绘制我的值,例如:

In [26]: cla()

In [27]: da = xarray.DataArray(arange(6*5).reshape(6,5), dims=("a", "b"), coords={"a": range(6), "b": range(5), "c": ("a", range(6))})

In [28]: da["c"].plot(label="a")
Out[28]: [<matplotlib.lines.Line2D at 0x7fef942e8b38>]

In [29]: da["c"].plot(label=None)
Out[29]: [<matplotlib.lines.Line2D at 0x7fef94279dd8>]

In [30]: legend()
Out[30]: <matplotlib.legend.Legend at 0x7fef942cba20>

我想要的效果是 da["c"].plot(label=None) 不会产生任何标记行。但是,xarray 似乎在结果图中给它一个标签 "c",因此它出现在图例中。我该如何抑制它?

一种解决方法是在绘制线条后设置标签,遵循 :

In [46]: L = da["c"].plot(label=None)    

In [47]: L[0].set_label(None) 

如果您传递空字符串,Xarray 的绘图模块似乎会跳过图例条目:

da["c"].plot(label="a")
da["c"].plot(label='')
legend()