[英]Using Matplotlib how to plot algebraic equations
使用Matplotlib,如何在3d中繪制以下代數方程式? 想可視化3平面的交點。
x - y + 2z = 5
y - z = -1
z = 3
需要將方程式轉換為封閉形式才能使用matplotlib進行繪制。 對於問題中的那些方程式來說,這相對容易。
然后可以使用二維網格物體來根據等式計算缺失尺寸的值。 現在,有了所有3個維度的值,我們可以使用plot_surface
繪制平面。
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
z1 = lambda x,y: 5./2.-x/2.+y/2. # x - y + 2z = 5
z2 = lambda x,y: y+1 # y - z = -1
z3 = lambda x,y: 3.*np.ones_like(x) # z = 3
x = np.arange(-3,3)
X,Y = np.meshgrid(x,x)
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_xlabel("x"); ax.set_ylabel("y"); ax.set_zlabel("z")
surf = ax.plot_surface(X, Y, z1(X,Y), color="C1", linewidth=0, shade=False)
surf = ax.plot_surface(X, Y, z2(X,Y), color="C2", linewidth=0, shade=False)
surf = ax.plot_surface(X, Y, z3(X,Y), color="C3", linewidth=0, shade=False)
plt.show()
平面似乎沒有相交,這是由於matplotlib並不是真正的3D渲染器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.