【发布时间】:2020-11-01 07:26:45
【问题描述】:
已经研究了以下问题 - 主要使用 python 中的 matplotlib。
“基本”函数是可能的,例如y = x^2,但如果我想绘制一个方程(由于多个 x-y 关联,它不一定是一个函数),例如:
x^2 + y^2 = 1(只是二维坐标系中以点(0/0)为中心,半径为1的基本圆)。
有没有办法用 matplotlib 或任何类似的库来绘制这样的方程?
我想到了将方程式重写为可绘制函数的想法,但由于绝对值分配,它看起来比原始方程式更难,例如将上面的等式转化为“函数”:|y| = sqrt(1-x²) 与 -y 和 +y。
//编辑:应@mkrieger1 的要求,编辑此问题。
我的软件的目的是使用输入(由另一个函数提供;代表任何方程的字符串,例如"y^3-sqrt(sin(x^2)-2)*2 = 3x")并将其转换为绘图。我个人在解决 y 函数的方法上失败了(如前所述),尤其是对于更复杂的函数。考虑到数学输入的种类繁多,将这些方程分成“更小的部分”也非常困难,因此我认为使用轮廓求解方法将是最好的部分。 (正如@mkrieger1 建议的那样)。
再一次强调,这种方法很关键,因为在 plt.contour(X, Y, func, [0]) 和 UserWarning 中实现之前需要对等式进行“编辑”。
【问题讨论】:
-
这能回答你的问题吗? Plot equation showing a circle
-
@mkrieger1 感谢您的快速回复,但没有。不幸的是,它们只涵盖了圆的特定情况,而我的问题旨在绘制方程(以圆为例),但通常将任何方程绘制到坐标系中,其中 ay 不能与一个 x 单一关联-value(就像我的例子一样)。
-
是的,它被称为等高线图,我已链接的问题的公认答案显示了如何使用 matplotlib 进行绘制。您应该能够将其推广到其他方程式。如果没有,请说明您尝试过的方法以及问题所在。
-
Matplotlib 允许您绘制任意 x-y 对序列。
-
@mkrieger1 当然,但仍然需要将方程 x^2 + y^2 = 1 格式化(从给定的用户输入)为 F = x^2 + y^2 - 1 ,这可以很容易地(通过自动化)获得“标准”用户警告,因为没有给定轮廓级别(在数据范围内)。
标签: python matplotlib math graph equation