The position of x-label is reset to the original position when printing a 'boxplot' figure

Hello,
I want to adjust the position of x-label in a 'boxplot' figure and to save the figure in a 'png' format.
Although I adjusted the position of the x-label as bellow, the position was reset to the original position when printing the figure:
figure;
boxplot(randn(100, 3))
xlabel('Trial number')
h = get(gca, 'xlabel');
oldpos = get(h, 'Position')
set(h, 'Position', oldpos - [0, 20, 0])
print('-dpng', 'boxplot.png')
get(h, 'Position') % The position is reset !
Does anyone know how to fix this problem?
I'm using Matlab R2012b.
Thanks.

답변 (1개)

I had this same problem -- very frustrating! Especially since this workaround indicates that the problem has existed for at least 3 years without a fix. The workaround didn't quite work as written for me, I used:
ax = findobj(gcf,'type','axes')
for j=1:length(ax),
boxparent = getappdata(ax(j),'boxplothandle');
listeners = getappdata(boxparent,'boxlisteners');
for i = 1:length(listeners),
listeners{i}.Enabled = 'off';
end
end
So, the procedure is:
  1. Get your boxplot to look the way you want it
  2. run the above loop do disable the listeners
  3. use the print command to output your plot

카테고리

도움말 센터File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기

제품

질문:

S D
2012년 8월 10일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by