Matplotlib timeseries plot from numpy matrix

2019-08-10 00:08发布

问题:

How would I be able to go about plotting a timeseries graph from a numpy matrix that looks like such:

data = [[   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   18.   28.   38.   48.   57.   66.   75.   85.   95.]
 [  95.   85.   76.   66.   57.   47.   38.   28.   18.    9.]
 [   9.   19.   28.   38.   48.   48.   38.   28.   19.    9.]
 [  48.   48.   45.   45.   47.   49.   47.   47.   45.   47.]
 [   9.   19.   28.   38.   48.   58.   67.   77.   87.   96.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  97.   87.   77.   67.   58.   48.   39.   29.   19.    9.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   47.   47.]
 [   9.   19.   29.   38.   48.   57.   67.   77.   87.   97.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [  96.   87.   77.   68.   58.   48.   39.   29.   19.    9.]
 [   9.   19.   29.   39.   48.   58.   67.   77.   87.   97.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   18.   28.   37.   47.   47.   37.   28.   18.    9.]
 [  46.   46.   46.   46.   46.   46.   46.   46.   46.   46.]
 [   9.   18.   28.   37.   47.   56.   65.   77.   87.   96.]
 [ 482.  482.  482.  482.  482.  482.  482.  482.  482.  483.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   18.   28.   38.   47.   57.   67.   76.   86.   96.]
 [  97.   87.   77.   68.   58.   48.   39.   29.   19.    9.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   47.   47.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   47.   47.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  96.   87.   77.   68.   58.   48.   38.   28.   19.    9.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   19.   29.   38.   48.   58.   68.   77.   87.   97.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   47.   47.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [   9.   19.   28.   38.   48.   57.   67.   77.   86.   96.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   19.   29.   39.   48.   58.   68.   78.   88.   97.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   47.   48.]
 [   9.   18.   28.   38.   47.   47.   38.   28.   18.    9.]
 [  47.   47.   47.   47.   47.   47.   48.   48.   48.   48.]
 [   9.   19.   28.   38.   47.   57.   67.   77.   86.   96.]
 [  96.   86.   77.   67.   57.   47.   38.   28.   19.    9.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   47.   47.]
 [   7.    8.    6.    7.    6.    7.    9.    7.    8.    7.]
 [   9.   18.   28.   37.   47.   56.   66.   75.   85.   95.]
 [ 480.  480.  480.  480.  480.  480.  480.  480.  480.  483.]
 [  96.   87.   77.   67.   58.   48.   38.   28.   19.    9.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   19.   28.   38.   48.   57.   67.   77.   86.   96.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [   9.   19.   28.   38.   48.   48.   38.   28.   19.    9.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [   9.   19.   28.   38.   48.   57.   67.   77.   86.   96.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   19.   29.   38.   48.   58.   67.   77.   87.   97.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [ 481.  481.  483.  483.  483.  483.  483.  483.  483.  483.]
 [   9.   19.   28.   38.   48.   57.   67.   77.   86.   96.]
 [  96.   87.   77.   67.   58.   47.   37.   28.   18.    9.]
 [   9.   18.   28.   37.   47.   47.   37.   28.   18.    9.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   47.   47.]
 [   9.   18.   28.   37.   47.   56.   66.   75.   85.   94.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  96.   86.   77.   67.   57.   48.   38.   28.   19.    9.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   18.   28.   37.   47.   56.   66.   75.   84.   94.]
 [  47.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   49.]
 [  95.   86.   76.   67.   57.   48.   38.   29.   19.    9.]
 [   9.   19.   29.   38.   48.   57.   67.   76.   86.   94.]
 [ 480.  480.  480.  480.  480.  480.  480.  480.  480.  480.]
 [   9.   18.   28.   38.   47.   47.   38.   28.   19.    9.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   19.   28.   38.   48.   58.   67.   75.   85.   94.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   47.   47.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [   9.   19.   28.   38.   47.   57.   66.   76.   86.   95.]
 [  96.   86.   76.   67.   57.   48.   38.   28.   19.    9.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   48.   48.]
 [   9.   19.   28.   38.   47.   57.   66.   75.   85.   94.]
 [  47.   47.   47.   47.   47.   47.   47.   47.   47.   47.]
 [  96.   86.   76.   67.   57.   48.   38.   29.   19.    9.]
 [ 480.  481.  481.  481.  481.  481.  481.  481.  481.  481.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [  48.   48.   48.   48.   48.   48.   48.   46.   46.   46.]
 [  46.   46.   46.   46.   46.   46.   46.   46.   46.   46.]
 [  90.   80.   71.   63.   54.   44.   35.   26.   17.    8.]
 [   9.   19.   28.   38.   47.   57.   67.   77.   86.   96.]
 [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]
 [ 481.  481.  481.  481.  481.  481.  481.  481.  481.  483.]
 [  48.   48.   48.   48.   48.   48.   48.   48.   48.   48.]
 [   9.   19.   28.   38.   47.   57.   66.   76.   86.   95.]]

Where the x axis is from time range 1-10

the y axis is from range 1-450

and in total there are 100 lines that are being plotted across the graph

回答1:

Here's an example with a subset of data similar to yours.

import matplotlib.pyplot as plt
import numpy as np

data = [[   3.,    3.,    3.,    3.,    3.,    3.,    3.,    3.,    3.,    3.],
 [  49.,   48.,   48.,   48.,   48. ,  48.,   48.,   48.,   48.,   48.],
 [   9.,   18.,   28.,   38.,   48.,   57.,   66.,   75.,   85.,   95.],
 ]

data = np.array(data) 

plt.plot(np.arange(1, 11), data.transpose())
plt.show()



回答2:

import matplotlib.pyplot as plt
for x in data:
    plt.plot(x)