将 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)
为X
和Y
中的每一列创建一个单独的图。因此,arr[:, 0]
和 arr[:, 1]
提取 x 和 y 坐标块,.T
转置块,使第一个维度进入列。
【讨论】:
以上是关于将 NumPy 数组的第一维解压缩到 pyplot.plot的主要内容,如果未能解决你的问题,请参考以下文章