假设您有一个形状为a
的数组(n,2,2)
,其中包含n
行segmenets的起点和终点坐标。如何绘制这些线段。我的代码不起作用,虽然它逐个元素地工作但不是一次全部工作。这是我的代码:
from matplotlib import pyplot as plt
import numpy as np
a=np.asarray([[[0,0],[1,1]],[[1,2],[2,3]],[[5,2],[2,6]],[[7,3],[5,9]]])
plt.plot(a[:,:,0],a[:,:,1])
plt.show()
我想得到的是: 但是我的代码输出是: 我该怎么纠正这个?
答案 0 :(得分:2)
您只需转置数组:
plt.plot(a[:,:,0].T,a[:,:,1].T)
原因是matplotlib
对二维数组a
的轴的标准解释,其中a[i,j]
意味着i
- j
的值{{1}} 1}} - 情节。
答案 1 :(得分:1)
诀窍似乎是转置,但我不明白为什么会这样!
from matplotlib import pyplot as plt
import numpy as np
a=np.asarray([[[0,0],[1,1]],[[1,2],[2,3]],[[5,2],[2,6]],[[7,3],[5,9]]])
X=a[:,:,0].T
Y=a[:,:,1].T
plt.plot(X,Y)
plt.show()
答案 2 :(得分:1)
另一种方法如下:
for aa in a:
plt.plot(aa[:,0], aa[:,1])