2015-09-08 4 views
0
legend(errorbars, {'5-15 Percent Exiting Agents', '25-35 Percent Exiting Agents','55-65 Percent Exiting Agents','x','y','z'},'Location','NorthWest'); 

Выдает ошибку:Легенда об ошибке В Errorbars Matlab

Ошибка с помощью легенды (строка 120) недопустимый аргумент. Введите «help legend» для получения дополнительной информации.

>> errorbars 

errorbars = 

    0.0011 0.0012 1.0012 2.0012 3.0012 4.0012 

Я понятия не имею, почему возникает эта ошибка. Поскольку у него 6 ярлыков для шести ошибок!

Кроме того, размещение полного кода:

for k=1:2, %x-axis variables 
    for i=1:size(StringDes,2), %y-axis outputs 
     errorbar_index=0; 
     set(gcf, 'units','normalized','outerposition',[0 0 1 1]); 
     for j=1:3, % two loops for 6 errorbars 
      for z=1:2, 
       errorbar_index=errorbar_index+1; 
       filter2= (pe{z}<upp(j) & pe{z} >lowp(j)); 
       dataset=Descriptors{z}{i}; 
       var= Variables{z}(:,k); 
       y=dataset(filter2); 
       x=var(filter2); 
       if(k==2) 
        range=rangeValues_ks; 
       else 
        range=rangeValues_ke; 
       end 
       filter3=(ismember(x,range)) ; 
       [vals, ~, id] = unique(x(filter3)); 
       m = accumarray(id, y(filter3), [], @mean); 
       s = accumarray(id, y(filter3), [], @std); 
       errorbars(errorbar_index)=errorbar(vals,m,s,colors(j), 'LineStyle',linestyle{z},'Marker',marker{z},'LineWidth',linewidth(z)); 
      end    
      xlabel(StringVar(k)); 
      ylabel(StringDes(i)); 
      hold all;    
     end 
     filename=char(strcat(StringDesFileName(i),StringVarFileName(k))); 
     legend(errorbars, {'5-15 Percent Exiting Agents', '25-35 Percent Exiting Agents','55-65 Percent Exiting Agents','x','y','z'},'Location','NorthWest'); 
     title(''); 
     print(gcf,strcat(parent_folder,'/',filename),'-dpng','-r375'); 
     close gcf; 
    end 
end 
+0

Это работает, если вы удалите аргумент 'errorbars' из вызова' legend'? – schvaba986

+0

, так вы попробовали, что я предложил? –

+0

Да, решает! Sry для ответа nt раньше. Потерялся с этим вопросом. –

ответ

1

Вы не можете связать легенду с несколькими записями из ErrorBar массива (здесь 1x6 массива). То, что вы можете сделать, это связать эту легенду с осями, в которых были созданы объекты ErrorBar. Они действительно Children осей, поэтому, если вы хотите, вы можете связать легенду с их Parent, то есть осями.

Так что вы можете сделать, это изменить проблемную линию либо на это:

legend(gca, {'5-15 Percent Exiting Agents', '25-35 Percent Exiting Agents','55-65 Percent Exiting Agents','x','y','z'},'Location','NorthWest'); 

или это:

legend(get(errorbars(1),'Parent'), {'5-15 Percent Exiting Agents', '25-35 Percent Exiting Agents','55-65 Percent Exiting Agents','x','y','z'},'Location','NorthWest'); 

Обратите внимание, что если у вас есть только 1 активных осей в вашей рабочей сессии, чем вы может полностью исключить gca в первом случае.

+0

Спасибо! Делает работу. –

+0

потрясающий! Повеселись –

 Смежные вопросы

  • Нет связанных вопросов^_^