0
set(0,'DefaultAxesColorOrder',[1 0 0;0 0 1;1 0 1;0 0 0]);
hold('all');
semilogy(Te, iicollfreq(:,P), Te, iecollfreq(:,P), Te, incollfreq(:,P), Te,iTotcollfreq(:,P))

これは、同じグラフに 4 つの個別のデータセットをプロットするための私の matlab コードです。何らかの理由で、4 つの異なる色ですべてをプロットするわけではありません。最後に を削除する[0 0 0]と、3 つは問題なく表示されますが、4 番目の色を表示することはできません。これを正しくプロットする方法を知っている人はいますか?

4

2 に答える 2

1

あなたはあなたのプロットで何を得ますか? 問題を再現できません。

プロットが重なっていないか、プロットされませんかiTotcollfreq(たとえば、すべてInfまたはNaN)。凡例を追加するか、プロット ツールを使用してグラフが作成されているかどうかを確認することで、これを調べることもできます。

これが当てはまらないことを確認するためにランダムデータを試しましたか?

t = 1:10;
f = @(t)(randn(size(t)));
set(0,'DefaultAxesColorOrder',[1 0 0;0 0 1;1 0 1;0 0 0]);
plot(t,f(t), t,f(t), t,f(t), t,f(t));
legend('show');
于 2012-07-30T18:40:54.953 に答える
1

次の構文を使用して色を指定することもできます。

plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec)

@Egonコードに基づく例を次に示します。

t = 1:100;
f = @(t) cumsum(randn(size(t)));
plot(t,f(t),'r',  t,f(t),'b', t,f(t),'m', t,f(t), 'k')

またはさらに良い:

h = plot(t,f(t), t,f(t), t,f(t), t,f(t));
set(h, {'Color'},num2cell([1 0 0;0 0 1;1 0 1;0 0 0],2))
legend(h, {'1','2','3','4'})

ここに画像の説明を入力

于 2012-07-30T19:14:37.910 に答える