Numpy 在不使用for循环的情况下绘制多个图形

Numpy 在不使用for循环的情况下绘制多个图形,numpy,matplotlib,graph,algebra,Numpy,Matplotlib,Graph,Algebra,因此,我的问题可能不完全是标题中的内容 我有一个函数 y=a*x+b 我想用不同的b值来画y 我知道我可以做到以下几点: 将numpy导入为np 将matplotlib.pyplot作为plt导入 a=2 x=np.数组([0,1,2,3,4]) b=0 对于范围(10)内的i: y=a*x+b b=b+1 平面图(x,y) 这正是我想要的 但是,我可以通过使用 b=np.数组([0,1,2,3,4,5,6,7,8,9])?因此,我的代码可能看起来像: 将numpy导入为np 将matplot

因此,我的问题可能不完全是标题中的内容

我有一个函数

y=a*x+b

我想用不同的b值来画y

我知道我可以做到以下几点:

将numpy导入为np
将matplotlib.pyplot作为plt导入
a=2
x=np.数组([0,1,2,3,4])
b=0
对于范围(10)内的i:
y=a*x+b
b=b+1
平面图(x,y)
这正是我想要的

但是,我可以通过使用
b=np.数组([0,1,2,3,4,5,6,7,8,9])
?因此,我的代码可能看起来像:

将numpy导入为np
将matplotlib.pyplot作为plt导入
a=2
x=np.数组([0,1,2,3,4])
b=np.数组([0,1,2,3,4,5,6,7,8,9])
y=a*x+b
平面图(x,y)

是的,您可以使用矩阵运算创建二维矩阵,其运算结果为
y=a*x+b

a = 2
x = np.array([0,1,2,3,4])
b = np.array([0,1,2,3,4,5,6,7,8,9])

y = a*x[:,None]+b
plt.plot(x, y)

编辑:我正在使用比我的解决方案简单得多的解决方案。 原代码为:

y = np.tile(a*x, (b.size,1)) + b[:,np.newaxis]
plt.plot(x, y.T)

还有
y=a*x[:,None]+b
plt.plot(x,y)
@QuangHoang当然要简单得多。我不知道我为什么要去另一个方向。谢谢你,太酷了!但是,我想我不明白这里发生了什么。这和转置(x)+b不一样吗?不,你需要把向量变换成二维矩阵。向量的转置是同一个向量。看见