matplotlib:超过2个控制点的扩展行

kro*_*ouk 18 python matplotlib

在matplotlib中,我们可以使用至少两种方法绘制线条:

  1. plt.plot

    plt.plot([1,2],[1,2],color='k',marker='o')
    
    Run Code Online (Sandbox Code Playgroud)
  2. Line2D方法

    line = lines.Line2D([0.3,0.6],[0.9,0.3],linestyle='dashed',color='k')
    plt.axes().add_line(line)
    
    Run Code Online (Sandbox Code Playgroud)

我怀疑这两种方法在实施过程中都是一样的.但无论如何,它在两个陈述点之间准确划出一条线.有时我需要将这两个点扩展到图形限制.当然我可以用y = ax + b的形式来计算它,但有人知道更容易吗?

完美的情况,如果我可以只是添加一些额外的选项,但我无法找到它.

kro*_*ouk 6

午餐过后,我找到了一种使用numpy的方法.

def drawLine2P(x,y,xlims):
    xrange = np.arange(xlims[0],xlims[1],0.1)
    A = np.vstack([x, np.ones(len(x))]).T
    k, b = np.linalg.lstsq(A, y)[0]
    plt.plot(xrange, k*xrange + b, 'k')
Run Code Online (Sandbox Code Playgroud)