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

Guy*_*Guy 4 python matplotlib

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

[[A_1, B_1] , [A_2, B_2],  .. ]
Run Code Online (Sandbox Code Playgroud)

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

据我所知,范围限制可以用xlim和实现ylim,但我不明白如何根据其方程画线.我知道一种方法可能是根据等式找到2个点,但我不明白plot函数如何适用于我的问题,谢谢.

Ang*_*ams 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()
Run Code Online (Sandbox Code Playgroud)

鉴于你用这个问题来表达问题[[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()
Run Code Online (Sandbox Code Playgroud)