我有两个 numpy 数组(a 和 b),每个数组的形状为 (16, 850)。我逐行显示它们,例如
plt.figure()
plt.plot(a[0], b[0])
plt.plot(a[1], b[1])
plt.plot(a[2], b[2])
...
plt.show()
我是否必须使用 for 循环以更 pythonic 的方式来完成它?
原文由 Maxwell‘s Daemon 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有两个 numpy 数组(a 和 b),每个数组的形状为 (16, 850)。我逐行显示它们,例如
plt.figure()
plt.plot(a[0], b[0])
plt.plot(a[1], b[1])
plt.plot(a[2], b[2])
...
plt.show()
我是否必须使用 for 循环以更 pythonic 的方式来完成它?
原文由 Maxwell‘s Daemon 发布,翻译遵循 CC BY-SA 4.0 许可协议
绘制多条线的最有效方法是使用 LineCollection
。这可能看起来像
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
x = np.random.rand(N,3)
y = np.random.rand(N,3)
data = np.stack((x,y), axis=2)
fig, ax = plt.subplots()
ax.add_collection(LineCollection(data))
对于一串由 3 个点组成的线。
在 Many plots in less time - python 的答案中查找不同方法及其效率的比较。
原文由 ImportanceOfBeingErnest 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答975 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
您可以将多维数组传递给
plot
并且每一列都将创建为单独的绘图对象。我们转置两个输入,以便它单独绘制每一行。