簡體   English   中英

使用Matplotlib如何繪制代數方程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM