I guess UIAxes is just a container containing regular Axes class (if you access protected properties by assigning a uiaxes handle to a struct, you can see the regular Axes). Therefore, UIFigures still supports using regular Axes Class, you just have to program them manually.
I highly recommend adding the axes into a panel-container, then you can position them with 0...1-Values and resizing the whole window works nice. If you add axes to uifigure-window, the resizing is a mess and I guess that is one of the reasons UIAxes was made.
You cannot add your own code to the grey areas, but you can add most of the things you need at the ribbon toolbar at "insert".
1) Add a Panel to the GUI
2) Add a public property
properties (Access = public)
3) Add a a "startupFcn"-Callback to the UIFigure Window to call a user defined function
4) Add a private user defined function which is called above and use it to create regular axes
methods (Access = private)
app.h_ax = axes(app.Panel,'Position',[0.1,0.1,0.8,0.8]);
app.h_ax.XLim = [0,1];
5) Plot into this axes using
All Positioning, setting limits and so on can be done by setting all the known properties of the axes class.
App Designer will show a warning here but so far it worked for me. See attached example.