使用Matplotlib在Python中逐行绘制2d

时间:2016-10-01 09:59:25

标签: python matplotlib

假设我有2d线方程(y = Ax + B),即:

[[A_1, B_1] , [A_2, B_2],  .. ]

我希望在2d范围内绘制线条,例如从点(-100,-100)到点(100,100)。

据我了解,使用xlimylim可以达到范围限制,但我不了解如何根据其等式绘制线条。我知道有一种方法可以根据等式找到2个点,但我不明白plot函数如何对我的问题起作用,谢谢。

1 个答案:

答案 0 :(得分:7)

要在x和y的某个指定范围内绘制两条直线,您可以执行以下操作:

import numpy as np 
import matplotlib.pyplot as plt

A1,B1 = 1.,1.
A2,B2 = 2.,2.

x = np.linspace(-100.,100.)

fig,ax = plt.subplots()
ax.plot(x,A1*x+B1)
ax.plot(x,A2*x+B2)

ax.set_xlim((-100.,100.))
ax.set_ylim((-100.,100.))

plt.show()

鉴于你用[[A_1, B_1] , [A_2, B_2], .. ]来表达这个问题,建议你想要绘制一系列不同的线条,那么你可以使用这样的for循环进行绘图:

import numpy as np 
import matplotlib.pyplot as plt

AB = np.random.randn(100,2) #create a random array of [[A1,B1],[A2,B2],...] as example

x = np.linspace(-100.,100.)

fig,ax = plt.subplots()
for ABi in AB:
    A,B = ABi
    ax.plot(x, A*x+B )

ax.set_xlim((-100.,100.))
ax.set_ylim((-100.,100.))

plt.show()