2

ユーザーが複数のファイルを選択してデータをプロットおよび比較できるプログラムを作成しています。プログラムはデータを適切にグラフ化できます。私が遭遇した問題は凡例の範囲内です。

画像を投稿してみましたが、あまり評判が良くありません。というわけで、グラフを詳しく説明してみます。2 組の点がプロットされます (異なるサイズの 2 つの行列)。曲線はユーザーによってラベル付けされます。この例では、「PS、Cs」および「PS、Po」です。

プログラムは、赤い四角で "PS, Cs" 曲線をプロットし、次に青い円で "PS, Po" をプロットしますが、凡例には両方の点セットの赤い四角が引き続き表示されます。以下は、プロットを行うコード内のループです。

fig = small_group_struct;

mystyles = {'bo','rs','go'};
mat_len = size(small_group_struct,2);
for q = 1:mat_len
    plotstyle = mystyles{mod(q,mat_len)+1};
    semilogy(1:size(small_group_struct(1).values),small_group_struct(q).values,plotstyle);
    hold all;        
    [~,~,~,current_entries] = legend;
    legend([current_entries {small_group_struct(q).name}]);
end
hold off;
%legend(small_group_struct.values,{small_group_struct.name});

私が見た他のスレッドは、plot コマンドをハンドルに入れることを提案しましたが、ポイントの各セットは異なるサイズの nxm 行列であるため、プログラムはこれを好みません。

また、最初に述べたように、ユーザーはファイルの数を選択しますが、これは通常 2 つですが、常にそうであるとは限らず、for ループ内でプロットしようとしている理由もあります。

提案やコメントをいただければ幸いです。

編集:私は今、画像を投稿するのに十分な評判を得ているので、ここにグラフのスクリーンショットがあります

ここに画像の説明を入力

4

1 に答える 1