从numpy矩阵生成Matplotlib时间序列图

1 投票
2 回答
3716 浏览
提问于 2025-04-18 07:50

我该如何从一个看起来像这样的numpy矩阵中绘制一个时间序列图呢:

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.]]

其中,x轴的时间范围是1到10

y轴的范围是1到450

总共有100条线在图上绘制

看起来会类似于这个:

2 个回答

1

这段内容是关于编程问题的讨论,可能涉及一些技术细节和代码示例。为了让初学者更容易理解,我们可以把复杂的术语换成更简单的说法。

首先,大家在讨论一个特定的编程问题,可能是遇到了错误或者想要实现某个功能。通常,程序员会分享他们的代码,或者描述他们的想法和解决方案。

在这个过程中,可能会提到一些常见的编程概念,比如变量、函数、循环等。对于初学者来说,变量就像是一个用来存储信息的盒子,函数则是一个可以重复使用的代码块,而循环则是让某段代码重复执行的方式。

总之,这段内容的核心是程序员们在交流和解决问题,分享他们的经验和代码,希望能帮助彼此更好地理解编程的世界。

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

这里有一个例子,使用了一部分和你类似的数据。

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

在这里输入图片描述

撰写回答