2024-10-01 13:32:03 发布
网友
我目前正试图用matplotlib绘制以下等式:
-4xy + x² - y² + 4(x³y - xy³) = 0
我不想通过简单地赋值x = np.linspace(-5,5)然后把它放到我的方程中来解决这个糟糕的方程
x = np.linspace(-5,5)
我想知道是否可以直接用matplotlib.pyplot绘制解决方案?我能够使用Geogebra很好且快速地绘制函数,因此我认为使用python也可以实现这一点。然而,我没有发现关于这一点的任何其他问题。有人有什么想法吗
matplotlib.pyplot
一种方法是使用Sympy的^{}函数
代码:
from sympy import plot_implicit, symbols, Eq x, y = symbols('x y') plot_implicit(Eq(-4*x*y+x**2-y**2+4*(x**3-x*y**3), 0), adaptive=False, points=1000)
输出:
在引擎盖下,它使用网格来决定是否在图形上的每个点绘制函数。这也是Geogebra在引擎盖下的工作。要在vanilla matplotlib中应用此方法,我们可以使用等高线图:
import numpy as np import matplotlib.pyplot as plt # Plot axes in middle fig, ax = plt.subplots() ax.spines['left'].set_position('center') ax.spines['bottom'].set_position('center') ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left') # Set up mesh grid x = y = np.linspace(-1.0, 1.0, 100) X, Y = np.meshgrid(x,y) # Plot contour ax.contour(X, Y, -4*X*Y+X**2-Y**2+4*(X**3-x*Y**3), [0]) plt.show()
一种方法是使用Sympy的^{} 函数
代码:
输出:
在引擎盖下,它使用网格来决定是否在图形上的每个点绘制函数。这也是Geogebra在引擎盖下的工作。要在vanilla matplotlib中应用此方法,我们可以使用等高线图:
代码:
输出:
相关问题 更多 >
编程相关推荐