将 NumPy 数组的第一维解压缩到 pyplot.plot

Posted

技术标签:

【中文标题】将 NumPy 数组的第一维解压缩到 pyplot.plot【英文标题】:Unpacking first dimension of NumPy array into pyplot.plot 【发布时间】:2016-01-12 14:00:33 【问题描述】:

我有五组 x,y 数据,我想在一个 plt.plot() 命令中绘制,方法是仅展开我的数组的第一个维度(形状为 (5,2,500)。如果我尝试:

plt.plot(*arr)

我得到了错误

ValueError: third arg must be a format string

但如果我通过分别发送 x,y 对来进行绘图,它就可以工作。例如三行:

plt.plot(arr[0][0], arr[0][1], arr[1][0], arr[1][1], arr[2][0], arr[2][1])

如何仅将第一个维度解压缩到 pt.plot 的参数列表中?

【问题讨论】:

我现在没有时间写一个完整的答案。所以我在这里添加这个,也许其他人可以从中做出完整的答案。这似乎可以满足您的需求plt.plot(arr[:,0,:].T, arr[:,1,:].T) 【参考方案1】:
plt.plot(*arr)

等价于

plt.plot(arr[0], arr[1], arr[2], arr[3], arr[4])

这就是它不起作用的原因。

正如@M4rtini 在他们的评论中所写,您可以使用plt.plot(arr[:,0,:].T, arr[:,1,:].T)

plt.plot(X, Y)XY 中的每一列创建一个单独的图。因此,arr[:, 0]arr[:, 1] 提取 x 和 y 坐标块,.T 转置块,使第一个维度进入列。

【讨论】:

以上是关于将 NumPy 数组的第一维解压缩到 pyplot.plot的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Numpy 中“压缩”几个 N-D 数组?

我如何“压缩排序”并行numpy数组?

将一维 Numpy 数组作为行添加到 DataFrame

将 bz2 压缩二进制文件导入为 numpy 数组

Numpy:连接多维和一维数组

numpy 数据处理