uicontrol(f,'Position',[20 20 20 20],..
と 'Position' で指定する値はそのままではピクセル値と解釈されます。
f1 = figure;
ui1 = uicontrol(f1,'Units','normalized','Position',[0.2,0.2,0.2,0.2]);
と 'Units'で他の単位に変えることはできますが、基本的には親オブジェクト(ここでは f1)上での相対的な位置関係を指定します。グラフ上の x座標、y座標と一致させるのは、もう一工夫必要ですね。