matplotlib 根据参考值绘制多条线图颜色

matplotlib multiple line plot color according to reference value

如果我有一个数据集:

import numpy as np
import matplotlib.pyplot as plt
y = np.array([np.random.randn(10) for k in range(100)])
plt.plot(y)

以及相应的分类值向量:

x = np.array([['nr1', 'nr2'] for k in range(5)]).reshape(10,1)

如何根据 y 是 'nr1' 还是 'nr2' 来着色? 如果pandas plot()函数有一个简单的方法也可以。

它应该最好是可扩展的,这样 x 中可以有两个以上的组。

编辑:这已经包括评论并且适用于任意数量的类别。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
y = np.array([np.random.randn(6) for k in range(100)])

x = np.array([['nr1', 'nr2', 'n3'] for k in range(2)]).reshape(6)

uniques, inverse = np.unique(x, return_inverse=True)
c = mpl.cm.Set1(inverse)

for i in range(y.shape[1]):
    plt.plot(y[:,i], color=c[i])