我正在嘗試使用該方法在 matplotlib 中生成 3d 橢圓體matplotlib.pyplot.add_subplot(211,projection='3d')。
首先,我使用以下代碼生成橢圓體的上側:
import matplotlib.pyplot as plt
fig1=plt.figure(figsize=(20,20))
ax=fig1.add_subplot(211,projection='3d')
import numpy as np
Xval=np.linspace(-5,5,50)
Yval=np.linspace(-5,5,50)
X,Y=np.meshgrid(Xval,Yval)
def height(x,y):
return 100-(x**2/4 y**2/9)
Z=np.sqrt(height(X,Y))
ax.plot_wireframe(X,Y,Z)
其次,當我試圖生成橢球的下側時,我無法將兩張圖片一起顯示以形成一個完整的橢球,并且它搞砸了。下側的 Z 向量如下。
Z=-np.sqrt(height(X,Y))
我會很感激任何提示。我知道這在二維圖中是可能的。
uj5u.com熱心網友回復:
您的橢圓體對于您定義的資料范圍來說太大了,這就是為什么當您將兩側繪制在一起時會得到兩個“平面”。和
Xval=np.linspace(-30,30,300)
Yval=np.linspace(-30,30,300)
...
ax.plot_wireframe(X,Y,np.sqrt(height(X,Y)))
ax.plot_wireframe(X,Y,-np.sqrt(height(X,Y)))
它顯示為

請注意,這仍然缺少兩半之間的連接。那是因為您需要包含給出 z=0 的確切 x、y 坐標。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/449433.html
標籤:Python 麻木的 matplotlib
