从原点绘制多条线

时间:2018-04-09 14:07:07

标签: python-3.x matplotlib line

我有以下点(x,y集)列表:

pts = [ 
        [1, 3 ],
        [4, 8 ],
        [-2,4 ],
        [-3,-5],
        [4, 2 ]]

我必须从origin(0,0)到每个点绘制线条,我使用以下代码:

import matplotlib.pyplot as plt
for pt in pts:
    plt.plot([0,pt[0]], [0,pt[1]])
plt.show()

它可以正常工作,但有什么办法可以对这段代码进行矢量化吗?我可以一次使用列表本身绘制所有行而不使用for循环吗?

1 个答案:

答案 0 :(得分:1)

如果您拥有numpy数组,则可以将其与numpy.zeros()一起编入索引:

import matplotlib.pyplot as plt
import numpy as np

pts = [ [1, 3 ],
        [4, 8 ],
        [-2,4 ],
        [-3,-5],
        [4, 2 ]]

arr = np.array(pts)

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

plt.show()

enter image description here