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

エラーが発生します:

凡例の使用エラー (120 行目) 引数が無効です。詳細については、「ヘルプ凡例」と入力してください。

>> errorbars

errorbars =

    0.0011    0.0012    1.0012    2.0012    3.0012    4.0012

このエラーが発生する理由がわかりません。6 つのエラーバーに対して 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
4

1 に答える 1

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は、最初のケースで完全に省略できることに注意してください。

于 2015-09-08T13:27:32.407 に答える