MATLAB子地块标题和轴标签
我有以下脚本来最终绘制一个4乘2的子地块:MATLAB子地块标题和轴标签,matlab,label,plot,figure,Matlab,Label,Plot,Figure,我有以下脚本来最终绘制一个4乘2的子地块: files = getAllFiles('preliminaries'); n = size(files); cases = cell(1, n); m = cell(1, n); for i = 1:1:n S = load(files{i}); cases{i} = retransmission_distribution(S); c = size(cases{i}); m{1,i} = cell(1, c(2
files = getAllFiles('preliminaries');
n = size(files);
cases = cell(1, n);
m = cell(1, n);
for i = 1:1:n
S = load(files{i});
cases{i} = retransmission_distribution(S);
c = size(cases{i});
m{1,i} = cell(1, c(2));
%figure(i);
str_size = size(files{i});
title_str = files{i}(5:str_size(2) - 4);
title_str = strrep(title_str, '_', ' ');
%title(title_str);
for j = 1:1:c(2)
[x, y] = hist(cases{i}{1,j});
m{1,i}{1,j} = [x; int32(y)];
% subplot(4, 2, j);
% xlabel('Number of Retransmissions');
% ylabel('Number of Occurrences');
% bar(y, x, 'histc');
end
end
然而,按照我所拥有的命令序列的当前顺序,即使没有注释,标题和轴标签在被擦除之前也存在了一段时间。我希望图有自己的标题,每个子图都有自己的轴标签。最简单的修复方法是什么?据我所知,title函数相对于一组轴放置文本,因此没有地物标题。可能的解决方法包括仅对放置良好的子地块使用标题(例如第一个或顶行的中间一个),或在需要标题的位置手动创建一组轴 对于轴标签,请尝试将标签命令放在bar命令之后 对于轴标签,关于它们必须放置在调用后。这将解决单轴标签问题。但是,您可能会注意到,如果y轴标签太长,它们最终可能会相互覆盖。你有几个选择来解决这个问题。首先,您可以将通话中的字体大小调整为: 其次,您可以使用一个而不是一个字符串将一个长标签转换为多行标签:
ylabel({'Number of' 'Occurrences'});
要为整个地物添加标题,最好的选择可能是创建一个静态文本对象并调整其位置,使其位于地物顶部附近。您可以先获取地物的大小和位置,以帮助您将文本框放置在顶部和中心附近:
figureSize = get(gcf,'Position');
uicontrol('Style','text',...
'String','My title',...
'Position',[(figureSize(3)-100)/2 figureSize(4)-25 100 25],...
'BackgroundColor',get(gcf,'Color'));
这将创建一个宽度为100像素、高度为25像素的静态文本框,放置在图形顶部的中心,背景颜色与图形相同。这是我不久前在MATLAB exchange论坛上看到的一个解决方案,它对我非常有效。创建图形后,执行以下命令序列:
set(gcf,'NextPlot','add');
axes;
h = title('Intended Figure Title');
set(gca,'Visible','off');
set(h,'Visible','on');
这就是你要找的
它将标题居中放置在所有绘图上方
SUPTITLE Puts a title above all subplots.
SUPTITLE('text') adds text to the top of the figure
above all subplots (a "super title"). Use this function
after all subplot commands.
不知道多行标签。整洁的就像标题使用UICONTROL一样。仅供参考,使用MPGWRITE v6.0(Matlab 2012a)时,它似乎不会出现在电影中。+1使用此解决方案的标题会出现在使用MPGWRITE创建的电影中。请注意,基本Matlab中不包含suptitle命令。我认为这是我没有的工具箱的一部分。这是我见过的唯一一个稍微理智的选择,它仍然让我“用一种设计成科学语言的东西,广泛用于绘制图表,为什么这么难?”;-)
SUPTITLE Puts a title above all subplots.
SUPTITLE('text') adds text to the top of the figure
above all subplots (a "super title"). Use this function
after all subplot commands.