同じ色のプロット(またはサブプロット)を作ってから、次の色に進み、再び束を作ったりするなどしたい。デフォルトの色を使用しても問題ありません。また、私のプロットの数はデフォルトの色の数を超えているので、私はそれを繰り返す必要があります。どうすればこれを達成できますか?Matlabではプロット時にカラーイテレータをどのように制御できますか?
-1
A
答えて
0
あなたの要件を満たすものはありますか?頻繁に色が変化するチャートがたくさんある場合は、キーとしてインデックス時間(カラー切り替えが発生するはず)をキーとして、値として色を使用して辞書を作成できます。しかし、以下のコードは簡単です。
% Colors for 10 red plots and 5 black plots
colors = [repmat('r', 1, 10), repmat('b', 1, 5)];
for i = 1:length(colors)
figure; plot(x, y, colors(i));
end
0
あなたプロットするたびに、あなただけの、ランダムに色を選択できます。
% Create a random RGB color
color = rand(1,3);
% Plot as many times as needed with the newly created random color
plot (X,Y,'color', color)
あなたはこのように何度もループスルー、必要に応じてすることができます
0
あなたが軸を作成すると、それが持っていますColorOrderIndex
は、使用される次の色のインデックスを参照します。 ColorOrderIndex
の初期値は1
であり、新しいプロットを同じ軸に追加するたびに(クリアなし、つまりhold on
を使用)、値は増加し、すべての色を循環します(それ自体はプロパティColorIndex
に格納されています)。この行列は7つの色(Matlab R2015a)からなるデフォルト値を持ちますが、他の色を割り当てることもできます)。 したがって、ColorOrderIndex
プロパティの値が手動で増加しないことを手動で確認することで、次のプロットで同じ色を維持できます。私が各色ごとに行いますどのように多くのプロット事前に定義されていないため、動作しません
ax = axes;
hold on;
numberOfColors = length(ax.ColorOrder);
ax.ColorOrderIndex = 1;
plot([0,0],[0,1],'LineWidth',2);
ax.ColorOrderIndex = mod(ax.ColorOrderIndex-2,numberOfColors)+1; % keep same color
plot([1,1],[0,1],'LineWidth',2);
ax.ColorOrderIndex = mod(ax.ColorOrderIndex-2,numberOfColors)+1; % keep same color
plot([2,2],[0,1],'LineWidth',2);
% change color
plot([3,3],[0,1],'LineWidth',2);
ax.ColorOrderIndex = mod(ax.ColorOrderIndex-2,numberOfColors)+1; % keep same color
plot([4,4],[0,1],'LineWidth',2);
% change color
plot([5,5],[0,1],'LineWidth',2);
ax.ColorOrderIndex = mod(ax.ColorOrderIndex-2,numberOfColors)+1; % keep same color
plot([6,6],[0,1],'LineWidth',2);
ax.ColorOrderIndex = mod(ax.ColorOrderIndex-2,numberOfColors)+1; % keep same color
plot([7,7],[0,1],'LineWidth',2);
ax.ColorOrderIndex = mod(ax.ColorOrderIndex-2,numberOfColors)+1; % keep same color
plot([8,8],[0,1],'LineWidth',2);
% and so on...
はありません。 – LWZ
MATLABのコメントに#記号は使用されていません。 – xrr