为矩阵

时间:2017-10-07 14:22:57

标签: python python-2.7 matplotlib matrix plot

我绘制了包含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()

我得到的是每行打印的所有列表。

enter image description here

我尝试了ax3.plot(nH.T, label=[n[i] for i,n in enumerate(latent_prot2)])或将最后一行更改为plt.legend(label=latent_prot2),但它们无效。如何从列表中的图例中的矩阵中为每个列数据写入名称? 如果我不必通过循环但是我不知道这是否可能会很好。

1 个答案:

答案 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()

enter image description here