2013-10-11 156 views
2

matplotlib中是否有类似于MATLAB的Extensions的函数?在matplotlib中扩展线段

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

enter image description here

看着另一个问题和应用公式后,我能得到它在这里,但它仍然看起来凌乱。

enter image description here

有谁有神奇的公式在这里?

+0

请在downvoting之前发表评论。这个问题对社区没有任何用处? – user2869668

+0

请定义凌乱 – gg349

回答

1

有一个去写自己的,因为我不认为这存在于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() 

enter image description here

我才意识到你有你的阴谋一些红点,是那些重要的改进?无论如何,我认为你迄今为止解决问题的主要观点是将绘图限制设置为以前存在的绘图限制,正如你发现的那样,它们会得到扩展。