在matplotlib中扩展线段

时间:2013-10-11 05:18:10

标签: python matplotlib plot

matplotlib中的函数是否类似于MATLAB的Extensions

我基本上在寻找一种将线段扩展到图的方法。我目前的情节看起来像这样。

enter image description here

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

enter image description here

有没有人在这里有神奇的公式?

1 个答案:

答案 0 :(得分:3)

请自行编写,因为我认为这不存在于matplotlib中。这是一个开始,你可以通过添加semiinfinite等来改善

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()

enter image description here

我刚刚意识到你的情节上有一些红点,这些重要吗?无论如何,我认为你到目前为止解决的主要观点是缺少的是将情节限制设置为之前存在的那些,正如你所发现的那样,它们会得到扩展。