首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有不同数组大小的Python 3D绘图

具有不同数组大小的Python 3D绘图
EN

Stack Overflow用户
提问于 2017-10-06 13:39:07
回答 1查看 2.6K关注 0票数 1

我已经使用Matlab几年了,这是相当容易(在我看来)和强大的三维图形,如surfcontourcontourf。在我看来,用Python做同样的事情至少更不直观。

代码语言:javascript
复制
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中,我认为这是很容易的。我要做什么才能得到一个三维图(表面或任何东西),对于不同尺寸的x和y维有两个数组,以及给每个网格点一个值的z矩阵?

因为这是一个基本的问题,请多解释一下,或者给我一个答案的链接。不幸的是,到目前为止,我并不真正理解我所读到的关于这个问题的代码中发生了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-06 13:45:33

我不认为你所写的在matlab中也会起作用(我可能错了,我已经有一段时间没有使用它了)。

要执行plot_surface(X, Y, Z)X, Y, Z必须是大小相同的2D数组。所以,就像在matlab中所做的那样:

代码语言:javascript
复制
T, SP = numpy.meshgrid(t, sp)
plot_surface(T, SP, u)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46607106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档