0

我想在子图中添加图例,但仅适用于某些图。这是我的代码:

for j = 1:length(FL)
  for i = 1:length(index_list)
    pos=pos+1;
    subplot(size(FL,1),length(index_list), pos)
    legend(num2str(ms_list(i)), 'Location', 'NorthOutside');
    imagesc(imread(FL{j,:},index_list(i)))
    if i==1
        legend(FL(j),'Location', 'WestOutside')

  end 
end

子图包含从多帧 .tif 文件中提取的帧。所需帧的索引位于 index_list(列)中。所需文件的路径位于 FL(行)中。我想在图中添加的是每行左侧的文件名和绘制的每个图像的帧索引。ms_list 包含以毫秒为单位的等效索引,这实际上是我想要显示的。这样做会在循环中的每个段落返回“Plot empty”。

任何的想法 ?

谢谢

JC

4

1 回答 1

0

从您的描述和代码来看,这似乎legend不是您想要的;相反,您需要一个标题(在图上方)和 ylabel(在某些图的左侧)。 legend是为绘图内的特定对象提供标签,例如线条系列。

for j = 1:length(FL)
  for i = 1:length(index_list)
    pos=pos+1;
    subplot(size(FL,1),length(index_list), pos)
    title(num2str(ms_list(i))); %#<---title here
    imagesc(imread(FL{j,:},index_list(i)))
    if i==1
        ylabel(FL(j)) %#<---ylabel here    
    end 
  end
end

您收到错误的原因是您正在应用legend一组空的轴。 legend标记轴的孩子;没有孩子,没有标签,因此错误。

于 2012-06-19T19:44:09.470 回答