波那文都 2019-04-15 12:24 采纳率: 0%
浏览 5234

生成二维均匀分布的三维图报错AttributeError: 'int' object has no attribute 'ndim'?

  • 生成二维均匀分布的三维图报错

  • 代码如下:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
x=np.arange(0,1,0.01)
y=np.arange(0,1,0.01)
X,Y=np.meshgrid(x,y)
Z1=1
Z2=0
surf=ax.plot_surface(X,Y,Z1,color='b')
surf=ax.plot_surface(X,Y,Z2,color='r')

plt.show()
  • 报错信息

Traceback (most recent call last):

File "二维均匀分布.py", line 15, in

surf=ax.plot_surface(X,Y,Z1,color='b')

File "E:\DataAnalysis\python-3.7.0\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 1610, in plot_surface

if Z.ndim != 2:

AttributeError: 'int' object has no attribute 'ndim'

  • 截图

图片说明

给底面Z=0和均匀分布的平面Z=1染色,但显示这个问题,搜索了下,基本上没有与这个相似的。。。请教该如何改啊!~

  • 写回答

2条回答

  • fanyiping 2019-11-17 01:22
    关注

    改成下面就可以了,另外改了参数,100 * 100个点太多了会有点卡。所以改成0.1 ,这是一个均匀分布的3D效果图,没有实际意义

        fig=plt.figure()
        ax=fig.gca(projection='3d')
        X=np.arange(0,1,0.1)
        Y=np.arange(0,1,0.1)
    
        X,Y = np.meshgrid(X,Y)
        Z1=np.ones((10,10))
        Z2=np.zeros((10,10))
    
        surf=ax.plot_surface(X,Y,Z1,color='b')
        surf=ax.plot_surface(X,Y,Z2,color='r')
    
        plt.show()
    

    _

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码