我绘制了包含4列的矩阵nH.T
。所以我想制作图例,每列的名称都来自列表latent_prot2
。
latent_prot2 = np.array(["A","B","C","E"])
ax3 = plt.subplot2grid((3, 4), (2, 0), colspan=3, rowspan=1)
ax3.plot(nH.T, label=[n for i,n in enumerate(latent_prot2)])
plt.legend()
我得到的是每行打印的所有列表。
我尝试了ax3.plot(nH.T, label=[n[i] for i,n in enumerate(latent_prot2)])
或将最后一行更改为plt.legend(label=latent_prot2)
,但它们无效。如何从列表中的图例中的矩阵中为每个列数据写入名称?
如果我不必通过循环但是我不知道这是否可能会很好。
答案 0 :(得分:1)
对label
使用plot
参数,您将获得每条绘制曲线的相同标签。
要操纵图例,您需要将元素列表传递给legend
调用
ax.legend(labels=["A","B","C","E"])
完整示例:
import matplotlib.pyplot as plt
import numpy as np
a = np.cumsum(np.cumsum(np.random.randn(15,4), axis=0), axis=1)
lab = np.array(["A","B","C","E"])
fig, ax = plt.subplots()
ax.plot(a)
ax.legend(labels=lab )
plt.show()