python转置矩阵画流程图_为什么matplotlib在3D绘图中绘制矩阵的转置?

我试图用matplotlib的mpl绘制一个3D曲面_工具箱.mplot3d绘制曲面函数。

我的Z变量(函数f(x,y))非常复杂,一旦我把它们网格化,我就不能把它写成x和y的函数,所以我把它当作一个2D数组来计算,这个循环遍历x和y变量,把所有的东西都存储在一个矩阵中。我把这个数组Z传递给plot_surface函数的调用,但是我总是得到错误的绘图,基本上是因为我期望得到Z的图形,但是得到了与Z相对应的图形。在

我可以做一个简单得多的例子来重现我的问题:X = range(5)

Y = range(5)

X,Y = np.meshgrid(X,Y)

mysol = np.array([[1,1,1,1,1],[2,2,2,2,2],[3,3,3,3,3],[4,4,4,4,4],[5,5,5,5,5]])

fig1 = plt.figure(1)

ax = fig1.add_subplot(111, projection='3d')

surf = ax.plot_surface(X, Y, mysol, rstride=1, cstride=1, cmap=cm.coolwarm)

ax.set_xlabel('X')

ax.set_ylabel('Y')

ax.set_zlabel('Z')

plt.show()

所以,我希望这会产生一个平面,当x=0时,我得到mysol[0,:]=[1,1,1,1,1](我矩阵mysol的第一行)。相反,如果我看这段代码生成的图,当x=0时,我得到矩阵的第一列(mysol[:,0]=[1,2,3,4,5]。在

我知道如果我画出图,问题就解决了迈索尔转座()而不是mysol,但我想理解这里的逻辑。那么,matplotlib为什么要这样做呢?我希望它按行而不是按列来绘制数组。我的错误在哪里?在

提前谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值