【发布时间】:2018-10-30 11:25:52
【问题描述】:
假设我有如下函数:
a*x^2 + b*y^2 + c*x + d*y + e = 0
如何绘制由该方程定义的曲线?例如x^2 + y^2 - 1= 0,我希望绘制一个圆圈。
我没有找到绘制此类方程的函数。可以绘制的方程通常是关于x的多项式函数:
y = a*x^n + ....
另一个问题的答案是:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)
F = 3 + 2*X + 4*X*Y + 5*X*X
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, F)
plt.show()
这是三维的二维曲面,而我需要二维的曲线。
【问题讨论】:
-
您在使用什么绘图库时遇到问题?你能展示你的代码吗?
-
@timgeb 我包括了被视为重复的问题的答案。但它们适用于多项式函数,但不适用于类似于我的函数。
-
您的代码块绘制了一个
z(x,y)表面,一个二维对象。你的方程是f(x,y)=0,它为你提供了一个曲线的隐式方程,一个嵌入在 1d 中的 1d 对象。特别是,您有锥形部分。您在问题中提到了“表面”。请澄清术语,以明确您想要什么。 -
@Ahmad
f(x,y) = x + y有两个变量,可以绘制为二维曲面。f(x,y) = x + y = 0是定义此函数的水平集 的方程,它是y = -x在(x,y)平面上给出的一维曲线。你的情况也一样。要将f(x,y)绘制为曲面,还是要绘制f(x,y)=0曲线? -
@AndrasDeak 后者
f(x,y) = 0在二维平面(x 与 y)中。
标签: python matplotlib plot