首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据文件中的Python3D绘图,获取valueError

数据文件中的Python3D绘图,获取valueError
EN

Stack Overflow用户
提问于 2013-07-02 09:20:22
回答 1查看 2.1K关注 0票数 1

我对python比较陌生。我正在根据文件中的数据进行不同类型的绘图。我成功地绘制了等高线,并希望在3D图上绘制相同的数据。因此数据已经在X、Y和Z数组中。有Nx X值、Ny Y值和Z是(Nx,Ny)数组。我正在尝试的代码的最新版本如下:

代码语言:javascript
复制
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import matplotlib.cm as cm

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.RdBu)
plt.show()

因此,以前X、Y和Z是从一个文件中收集到我刚才提到的数组中的。但是当我尝试运行它时,我得到了以下结果:

代码语言:javascript
复制
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.RdBu)
File "/....../axes3d.py", line 1358, in plot_surface
X.shape = (rows,cols)
ValueError: total size of new array must be unchanged

是不是因为某些原因,X应该是一个二维数组?或者我需要将X重塑为列向量,而不是行或类似的东西?我真的不明白为什么它适用于等高线,而不适用于3d绘图。任何意见都将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-02 15:07:24

是的,X和Y应该是二维的。

尝试:

代码语言:javascript
复制
import numpy as np
X2D, Y2D = np.meshgrid(X,Y)
ax.plot_surface(X2D, Y2D, Z, rstride=1, cstride=1, cmap=cm.RdBu)

希望这能行得通

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17416003

复制
相关文章

相似问题

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