Asymmetric axes plot

I am trying to generate a plot a vector field between two plots.

The data i am trying to plot is computed per layer and x direction. so there are a 100 layers and 200 x points, so that generates a 100x200 array. when plotted it generates fig 1. Y=number of layers and X=number of x points Fig 1

The problem i am facing is when trying to plot it as seen in fig 2. The number of layers stay the same on each x point but the spacing between them changes depending on the water depth.

Goal Fig 2

I have a 2D array which I want to use as a grid. I want to use this 2D array to plot a quiver plot.

Array description Fig 3 the following code is used to create the array in the fig 3 (this array is the depth at each point in the x direction and at a layer in the column):

for j in range(0,depth.iloc[0,].size-1):
    globals()['col_{}'.format(j)] = pd.DataFrame(np.arange(0,depth.iloc[2,j],(depth.iloc[2,j])/50))
    globals()['col_{}'.format(j)] = globals()['col_{}'.format(j)].reset_index(drop=True)
df = pd.concat(AA, axis=1).iloc[:nz.size]
df.columns = range(df.shape[1])

here is some code that i have attempted(to try to create a mash grid and plot:


from matplotlib import animation as anim

fig = plt.figure()                        # Create a dummy figure
ax = plt.axes()          # Set the axis rigid
plt.rcParams['animation.ffmpeg_path'] = 'D:\\Downloads\\ffmpeg\\ffmpeg\\bin\\ffmpeg.exe'
matplotlib.rcParams['contour.negative_linestyle'] = 'solid'

Writer = anim.writers['ffmpeg']
writer = Writer(fps=2, metadata=dict(artist='Me'), bitrate=1800)

# This is the animation function
vm = -vz2[:,:,:]
um = -uz2[:,:,:]

current_speed = (um**2 + vm**2)**0.5
nzt = np.array(range(0,50))
def animate(i): 
    cont = plt.contourf(current_speed[i][:][:], cmap='jet')
    plt.quiver(nx, nz , um[i], vm[i], alpha=0.5,  linewidth=100, color='k', )
#    cont = ax1.imshow(ccz[i],cmap='jet')
    plt.title('Velocity Profile at t = '+str(i))
    plt.xlabel('cross-shore distance (m)')
    plt.ylabel('nz layers')

#    ax2 = plt.subplot(212) 
    plt.plot(zb[i][:][:], color = 'b')
#    plt.plot(H[i][:][:], color = 'b')    
    plt.plot(zb[0][:][:], color = 'red')
#    ax2.plot(H[0][:][:], color = 'red')
#    ax2.set_xlim(0,120)

    plt.xlabel('cross-shore distance (m)')
    plt.ylabel('nz layers')

    plt.suptitle("Netcdf Exercise")
    return cont,    # Return the handle

ani = anim.FuncAnimation(fig, animate, interval = 1000, frames=itr)'n.mp4', writer=writer)