1. 程式人生 > >MATLAB boxplot 字型位置調整以及圖片儲存問題

MATLAB boxplot 字型位置調整以及圖片儲存問題

boxplot,調整x軸的label字型大小方法:

text_h = findobj(gca,'Type','text');

set(text_h,'FontSize', 22);

但是調整過後,會發生字型上移,如下圖


需要用以下方法,移動x軸label,10是可以調整的數值,表示在y軸上下移動的程度:

yshift = get(text_h, 'Position'); % stop  
yshift = cellfun(@(y) [y(1) y(2)-10 y(3)],yshift,'un',0);  % set position
set(text_h, {'Position'}, yshift);


但此時如果另存為圖片,會發生移動過的x軸label重新回到原來位置的情況,這時候需要用如下命令:

ax = findobj(gcf,'type','axes'); % need stop here
    for j=1:length(ax)
        boxparent = getappdata(ax(j),'boxplothandle');
        listeners = getappdata(boxparent,'boxlisteners');
        % To disable the listener objects:
        cellfun(@(x) set(x,'Enabled','off'), listeners)
       % To delete:
       % cellfun(@(x) delete(x), listeners)
    end

這樣可以順利的儲存圖片。