ユーザーが複数のファイルを選択してデータをプロットおよび比較できるプログラムを作成しています。プログラムはデータを適切にグラフ化できます。私が遭遇した問題は凡例の範囲内です。
画像を投稿してみましたが、あまり評判が良くありません。というわけで、グラフを詳しく説明してみます。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 ループ内でプロットしようとしている理由もあります。
提案やコメントをいただければ幸いです。
編集:私は今、画像を投稿するのに十分な評判を得ているので、ここにグラフのスクリーンショットがあります