在 matplotlib 中延伸线段

use*_*668 6 python plot matplotlib

matplotlib有没有类似于MATLAB的行扩展的功能?

我基本上是在寻找一种将线段延伸到绘图的方法。我目前的情节是这样的。

在查看了另一个问题并应用了公式之后,我能够将其放到这里,但它看起来仍然很混乱。

这里有人有神奇的公式吗?

Gre*_*reg 4

尝试自己编写,因为我认为 matplotlib 中不存在这种情况。这是一个开始,您可以通过添加半无限等来改进

import matplotlib.pylab as plt
import numpy as np

def extended(ax, x, y, **args):

    xlim = ax.get_xlim()
    ylim = ax.get_ylim()

    x_ext = np.linspace(xlim[0], xlim[1], 100)
    p = np.polyfit(x, y , deg=1)
    y_ext = np.poly1d(p)(x_ext)
    ax.plot(x_ext, y_ext, **args)
    ax.set_xlim(xlim)
    ax.set_ylim(ylim)
    return ax


ax = plt.subplot(111)
ax.scatter(np.linspace(0, 1, 100), np.random.random(100))

x_short = np.linspace(0.2, 0.7)
y_short = 0.2* x_short

ax = extended(ax, x_short, y_short,  color="r", lw=2, label="extended")
ax.plot(x_short, y_short, color="g", lw=4, label="short")

ax.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我刚刚意识到你的地块上有一些红点,这些重要吗?无论如何,我认为到目前为止您的解决方案缺少的要点是将绘图限制设置为之前存在的绘图限制,否则,正如您所发现的,它们会被扩展。