2012-06-19 44 views
0

我想在一個子圖中添加圖例,bu僅適用於某些地塊。 這裏是我的代碼:MATLAB - 在一個子圖中的一些選定的地塊旁邊添加圖例 - for循環

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

回答

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標籤軸的孩子;沒有孩子,沒有標籤,因此錯誤。