Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试在二维平面中使用matplotlib绘制线性方程组_Python_Numpy_Matplotlib - Fatal编程技术网

Python 尝试在二维平面中使用matplotlib绘制线性方程组

Python 尝试在二维平面中使用matplotlib绘制线性方程组,python,numpy,matplotlib,Python,Numpy,Matplotlib,正如标题所说,我试图绘制一个线性方程组,以获得两个方程的交点 8a-b=9 4a+9b=7 下面是我尝试过的代码 import matplotlib.pyplot as plt from numpy.linalg import inv import numpy as np a = np.array([[8,-1],[4,9]]) b = np.array([9,7]) c = np.linalg.solve(a,b) plt.figure() # Set x-axis range plt.

正如标题所说,我试图绘制一个线性方程组,以获得两个方程的交点

8a-b=9

4a+9b=7

下面是我尝试过的代码

import matplotlib.pyplot as plt
from numpy.linalg import inv
import numpy as np

a = np.array([[8,-1],[4,9]])
b = np.array([9,7])
c = np.linalg.solve(a,b)

plt.figure()

# Set x-axis range
plt.xlim((-10,10))
# Set y-axis range
plt.ylim((-10,10))
# Draw lines to split quadrants
plt.plot([-10,-10],[10,10], linewidth=4, color='blue' )


#draw the equations
plt.plot(a[0][0],a[0][1], linewidth=2, color='red' )
plt.plot(a[1][0],a[1][1], linewidth=2, color='red' )

plt.plot(c[0],c[1], marker='x', color="black")

plt.title('Quadrant plot')

plt.show()
我只得到了交点,但没有得到二维平面上的直线,如下图所示

我想要这样的东西

这是你的直线方程

现在使用
plt.plot(x1,y1)
等绘制这些

plt.figure()
# Set x-axis range
plt.xlim((-10,10))
# Set y-axis range
plt.ylim((-10,10))
# Draw lines to split quadrants
plt.plot([-10,-10],[10,10], linewidth=4, color='blue' )
plt.plot(x1,y1)
plt.plot(x2,y2)

#draw the equations
plt.plot(a[0][0],a[0][1], linewidth=2, color='red' )
plt.plot(a[1][0],a[1][1], linewidth=2, color='red' )

plt.plot(c[0],c[1], marker='x', color="black")

plt.title('Quadrant plot')

plt.show()
这是你的直线方程

现在使用
plt.plot(x1,y1)
等绘制这些

plt.figure()
# Set x-axis range
plt.xlim((-10,10))
# Set y-axis range
plt.ylim((-10,10))
# Draw lines to split quadrants
plt.plot([-10,-10],[10,10], linewidth=4, color='blue' )
plt.plot(x1,y1)
plt.plot(x2,y2)

#draw the equations
plt.plot(a[0][0],a[0][1], linewidth=2, color='red' )
plt.plot(a[1][0],a[1][1], linewidth=2, color='red' )

plt.plot(c[0],c[1], marker='x', color="black")

plt.title('Quadrant plot')

plt.show()

要绘制直线,最简单的方法是根据
b
将方程重新排列为。这样
8a-b=9
变成
b=8a-9
4a+9b=7
变成
b=(7-4a)/9

看起来你还试图画出图形的“轴”,我在下面的代码中也解决了这个问题

下面应该可以做到这一点:

导入matplotlib.pyplot作为plt
将numpy作为np导入
a=np.array([[8,-1],[4,9]]
b=np.数组([9,7])
c=np.linalg.solve(a,b)
plt.图()
#设置x轴范围
plt.xlim(-10,10))
#设置y轴范围
plt.ylim(-10,10))
#绘制分割象限的线
plt.绘图([-10,10],[0,0],color='C0')
plt.绘图([0,0],-10,10],color='C0')
#画线8a-b=9=>b=8a-9
x=np.linspace(-10,10)
y=8*x-9
plt.plot(x,y,color='C2')
#画线4a+9b=7=>b=(7-4a)/9
y=(7-4*x)/9
plt.plot(x,y,color='C2')
#添加溶液
plt.scatter(c[0],c[1],marker='x',color='black')
#注释解决方案
plt.annotate(“({:0.3f},{:0.3f})”格式(c[0],c[1]),c+0.5)
产品名称(“象限图”)
plt.show()
这给了我以下的情节:

要绘制直线,最简单的方法是根据
b
重新排列方程式。这样
8a-b=9
变成
b=8a-9
4a+9b=7
变成
b=(7-4a)/9

看起来你还试图画出图形的“轴”,我在下面的代码中也解决了这个问题

下面应该可以做到这一点:

导入matplotlib.pyplot作为plt
将numpy作为np导入
a=np.array([[8,-1],[4,9]]
b=np.数组([9,7])
c=np.linalg.solve(a,b)
plt.图()
#设置x轴范围
plt.xlim(-10,10))
#设置y轴范围
plt.ylim(-10,10))
#绘制分割象限的线
plt.绘图([-10,10],[0,0],color='C0')
plt.绘图([0,0],-10,10],color='C0')
#画线8a-b=9=>b=8a-9
x=np.linspace(-10,10)
y=8*x-9
plt.plot(x,y,color='C2')
#画线4a+9b=7=>b=(7-4a)/9
y=(7-4*x)/9
plt.plot(x,y,color='C2')
#添加溶液
plt.scatter(c[0],c[1],marker='x',color='black')
#注释解决方案
plt.annotate(“({:0.3f},{:0.3f})”格式(c[0],c[1]),c+0.5)
产品名称(“象限图”)
plt.show()
这给了我以下的情节:

Hi@jwalton谢谢你的回答,我们怎样才能用等式注释直线,使其与直线平行?不客气。很高兴这有用。你可以做一些类似于
plt.axes().set_aspect('equal')plt.annotate('8a-b=9',(-5,4),rotation=-25)plt.annotate('1/9(7-4a)',(2.5,6),rotation=85)
。在这里,我选择了由眼睛选择的旋转。然而,如果你想到你的直线,你应该能够写下它们的精确旋转(相对于y轴)Hi@jwalton谢谢你的回答,我们如何用等式注释直线,使其与直线平行?不客气。很高兴这有用。你可以做一些类似于
plt.axes().set_aspect('equal')plt.annotate('8a-b=9',(-5,4),rotation=-25)plt.annotate('1/9(7-4a)',(2.5,6),rotation=85)
。在这里,我选择了由眼睛选择的旋转。然而,如果你考虑你的线,你应该能够写下它们的精确旋转(相对于y轴)