如何从matplotlib图例中排除系列?

时间:2016-04-26 08:31:48

标签: python matplotlib

我有一个循环遍历一个大数据集,将数据存储在各种列表中,并在最后绘制它们。但是,某些系列仅包含Null值,并且不希望它们包含在图例中。有什么方法可以从传奇中排除系列吗?这是z仅包含Null s。

的简单示例
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(1, 5)
y = 1/x
z = [np.nan, np.nan, np.nan, np.nan]

plt.plot(x,y, label = 'x data')
plt.plot(x,z, label = 'z data')

plt.legend()
plt.show()

1 个答案:

答案 0 :(得分:1)

如果数组中的任何值为NaN,则可以使用返回None的函数:

def label_not_nan(arr, label):
    if np.isnan(arr).any():
        return None
    return label

plt.plot(x,y, label=label_not_nan(x, 'x data'))
plt.plot(x,z, label=label_not_nan(z, 'z data'))

图例中不显示任何标签。