2012-06-19 5 views
0

Я хочу добавить легенды в подзаголовок, bu только для определенных сюжетов. Вот мой код:MATLAB - добавить легенду рядом с некоторыми выбранными графиками в подзаголовке - для цикла

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 не то, что вы хотите; скорее, вам нужен заголовок (над сюжетом) и ярлык (слева от определенных сюжетов). 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 наклеивается на детей осей; нет детей, ничего не помечено, следовательно, ошибка.