波那文都 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()
    

    _

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条