在python中绘制矩阵的内容(使用matplotlib)

new*_*ewb 3 python matplotlib

嗨我需要绘制矩阵的内容,其中每行代表不同的特征,每列是不同的时间点.换句话说,我希望随着时间的推移看到功能的变化,并且我已经以矩阵的形式堆叠了每个特征.C是矩阵

A=C.tolist() #convert matrix to list.
R=[]
for i in xrange(len(A[0])):
    R+=[[i]*len(A[i])]    
for j in xrange(len(A[0])):
    S=[]
    S=C[0:len(C)][j]
    pylab.plot(R[j],S,'r*')
pylab.show()
Run Code Online (Sandbox Code Playgroud)

这是对的/有更有效的方法吗?谢谢!

Ava*_*ris 8

来自文档:

matplotlib.pyplot.plot(*args, **kwargs):
Run Code Online (Sandbox Code Playgroud)

[...]

plot(y)            # plot y using x as index array 0..N-1
plot(y, 'r+')      # ditto, but with red plusses
Run Code Online (Sandbox Code Playgroud)

如果x和/或y是2维的,则将绘制相应的列.

因此,如果A列中包含值,则只需:

pylab.plot(A, 'r*')  # making all red might be confusing, '*-' might be better
Run Code Online (Sandbox Code Playgroud)

如果您的数据是行,则绘制它的转置:

pylab.plot(A.T, 'r*')
Run Code Online (Sandbox Code Playgroud)


aar*_*ren 5

您可以使用提取矩阵M的第i M[:,i]列,并且M中的列数由给出M.shape[1]

import matplotlib.pyplot as plt

T = range(M.shape[0])

for i in range(M.shape[1]):
    plt.plot(T, M[:,i])

plt.show()
Run Code Online (Sandbox Code Playgroud)

假定行表示等间隔的时间片。