如何从大型数组中绘制图形?

时间:2019-03-31 17:59:59

标签: arrays python-3.x numpy matplotlib graph

我有一个numpy数组[(a1, x1), (a2, x2), ..., (a100, x100)],我需要对其进行绘制,使得a是我的y轴,x是我的x轴。

我知道将[a1, a2, ..., a100][x1, x2, ..., x100]作为单独的数组进行绘制会比较容易,但是我正在做一个项目,并且专门告诉我这样做,但正在挣扎。

尝试1给了我一个图,但是我认为它是根据数组中的a和x值相对于它们的阶数绘制的图。

Matplotlib网站建议的

尝试2,给了我很长的错误消息。

# attempt 1 
plt.plot(array,'r.') 
plt.show()
plt.close()

# attempt 2 
plt.plot(array_1[0], array_1[1:],'r.') 
plt.show()
plt.close()

任何建议将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

假设您的数组是一个形状为(100,2)的numpy数组,您可以执行以下操作:

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

阅读方法是:

[第一维,第二维] 其中:是“所有维度”,索引1和2指定维度中的位置。

所以代码 arr[:,1]的意思是“所有行”,“第二个元素”

编辑: 与OP讨论后,他/她的数组形状实际上是(202,)

您可以通过重塑来解决此问题。

array_1 = array_1.reshape(-1,2)
plt.plot(arr[:,1],arr[:,0])