web-dev-qa-db-ja.com

Matlabはプロットのためにランダムな色を選択します

プロットしたいベクトルが6つあります。各プロットを異なる色(ランダム)で作成するにはどうすればよいですか?以下のコードでは、プロットは6つのベクトルすべてに対して1色に制限されています。

plot(x,y,'-rs','LineWidth',1,...
      'MarkerEdgeColor','k',...
      'MarkerFaceColor','g',...
      'MarkerSize',5);
21
Jessy

[〜#〜] plot [〜#〜] で自動的に線の色を選択できます。 6つのベクトルがすべて同じ長さの場合、x座標とy座標をN行6列の行列XYに入れて、これらを [〜# 〜] plot [〜#〜] 。列ごとに異なる色が使用されます。

plot(X,Y,'-s');  %# Plots lines with square markers

組み込みの colormaps を使用して色のセットを生成し、各ラインを個別にプロットするときにこれらを使用することもできます。例えば:

cmap = hsv(6);  %# Creates a 6-by-3 set of colors from the HSV colormap
for i = 1:6     %# Loop 6 times
  plot(X(:,i),Y(:,i),'-s','Color',cmap(i,:));  %# Plot each column with a
                                               %#   different color
end
42
gnovice

ランダムカラーマップを作成するには、次のようにします。

myMap = Rand(nbColors, 3);
for i = 1:nbColors
  plot(X(:,i),Y(:,i),'-s','Color',myMap(i,:));
end

ただし、gnoviceの答えに対するコメントで述べたように、カラーマップから色を選択すると、一般的にはるかに読みやすい色の組み合わせが提供されます。

4
Kena