簡體   English   中英

具有不同數組大小的Python 3D圖

[英]Python 3D plot with different array sizes

我已經使用Matlab幾年了(在我看來)相當容易,並且在涉及到3D圖形(例如surfcontourcontourf )時功能強大。 對我來說,在Python中執行相同的操作至少似乎更不直觀。

import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0,100,0.1) # time domain
sp = np.arange(0,50,0.2) # spatial domain
c = 0.5
u0 = np.exp(-(sp-5)**2)  
u = np.empty((len(t),len(sp))
for i in range(0,len(t)):
  u[i][:] = u0*(sp-c*t)
fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
ax.plot_surface(t,sp,u)
plt.show()

因此,在Matlab中,我認為就這么容易。 為了獲得3D繪圖(表面或其他任何東西),我該怎么辦,該繪圖具有兩個分別用於x和y尺寸的數組,且兩個數組的大小不同,而z矩陣為每個柵格點賦予一個值?

由於這是一個基本問題,請多解釋一點,或者給我一個帶有答案的鏈接。 不幸的是,到目前為止,我並不真正理解我閱讀的代碼中發生的有關此問題的情況。

我認為您編寫的內容也不會在Matlab中運行(我可能是錯的,我有一段時間沒有使用它了)。

要執行plot_surface(X, Y, Z)X, Y, Z必須是大小相等的2D數組。 因此,就像在matlab中一樣:

T, SP = numpy.meshgrid(t, sp)
plot_surface(T, SP, u)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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