Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.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 绘制椭圆方程,不工作_Python_Matplotlib - Fatal编程技术网

Python 绘制椭圆方程,不工作

Python 绘制椭圆方程,不工作,python,matplotlib,Python,Matplotlib,我得到了一个椭圆->(0.375*x^2)+(0.4375*y^2)+(0.5*y)-3.732的方程 我试着用Python绘制它: 将numpy导入为np 从matplotlib导入pyplot作为plt q=-np.linspace(5,10100) p=np.linspace(-25,291000) p、 q=np.meshgrid(p,q) Q=(0.4375*(Q**2))-(0.5*Q)-3.732 P=(P**2)*0.375 pline=plt.等高线(p,q,(p+q),[0]

我得到了一个椭圆->(0.375*x^2)+(0.4375*y^2)+(0.5*y)-3.732的方程

我试着用Python绘制它:

将numpy导入为np
从matplotlib导入pyplot作为plt
q=-np.linspace(5,10100)
p=np.linspace(-25,291000)
p、 q=np.meshgrid(p,q)
Q=(0.4375*(Q**2))-(0.5*Q)-3.732
P=(P**2)*0.375
pline=plt.等高线(p,q,(p+q),[0])
plt.图例((pline),('Curve'),loc='右上角',shadow=True)
我得到一个警告:

在数据范围内未发现等高线水平。 图例不支持实例


有没有其他方法来绘制椭圆?我该如何解决这个问题呢?

问题之一是q和p的范围没有围绕椭圆。在-5和5之间进行选择似乎很合适。选择一个中心有不同颜色的颜色贴图有助于指出方程式为零的位置。将vmin(对应于最低颜色的函数值)和vmax(对应于最高颜色的函数)设置为对称为零,将中心颜色设置为零

轮廓
不会生成图例,但会在色条中给出指示

将numpy导入为np
从matplotlib导入pyplot作为plt
q=np.linspace(-5,5200)
p=np.linspace(-5,5200)
p、 q=np.meshgrid(p,q)
Q=(0.4375*(Q**2))-(0.5*Q)-3.732
P=(P**2)*0.375
等高线图(p,q,(p+q),水平=11,cmap='coolwarm',vmin=-5,vmax=5)
plt.colorbar()
plt.show()
灰色椭圆是方程为零的椭圆。

,pythons符号数学库,可通过直接绘制:


欢迎来到StackOverflow。看见在您发布MRE代码并准确说明问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您指定的问题<代码>plt在您发布的代码中未定义
np也未定义,但我在工作环境中将其放在手边。很抱歉,我主要想知道如何绘制该等式。首先在
plt.contour
中省略plt.legend和奇怪的
[0]
。然后,试着用plt.contour(p,q,(p+q));plt.show()
我在plot\u implicit(P+Q)文件“/home/arjun/.local/lib/python3.6/site packages/sympy/plot/plot\u implicit.py”第326行plot\u implicit expr=Eq中使用symy:Traceback(最近一次调用)时出错,而不是椭圆(expr,0)文件“/home/arjun/.local/lib/python3.6/site packages/sympy/core/relational.py”,第474行,在新的lhs=_sympify(lhs)文件“/home/arjun/.local/lib/python3.6/site packages/sympy/core/sympify.py”中,第418行,在_sympify返回sympify(a,strict=True)但是当我使用你说的@JohanC之前的方法时,它起作用了,所以谢谢。但是我在平面上分散了一组点,当我在之后绘制时,早期的绘图与此重叠。我不确定为什么我的计数器绘图隐藏在其他绘图之后,而语句plt.contour正好在plt之前。show您可能需要升级sympy、python和matplotlib的最新版本。要将新绘图置于点后面,您可以执行
plt.contour(..,zorder=0)
。z顺序表示必须在哪一层绘制;越高越接近查看器)。这是否回答了您最初的问题?
from sympy.plotting import plot_implicit
from sympy.abc import p, q

Q = (0.4375 * (q**2)) - (0.5 * q) - 3.732
P = (p**2) * 0.375
plot_implicit(P+Q)