1. ホーム
  2. matlab

[解決済み] 異なる色の直線を自動でプロットする

2022-09-09 03:22:07

質問

複数のカーネル密度推定値を同じグラフにプロットしようとしていますが、すべて異なる色にしたいのです。私は文字列を使用する拙速な解決策を持っている 'rgbcmyk' を使用して、別々のプロットのためにそれを介してステップする、しかし、私は7つの反復の後に重複を持ち始める。これを行うより簡単で効率的な方法、およびより多くの色のオプションはありますか?

for n=1:10
 source(n).data=normrnd(rand()*100,abs(rand()*50),100,1); %generate random data
end
cstring='rgbcmyk'; % color string
figure
hold on
for n=1:length(source)
 [f,x]=ksdensity(source(n).data); % calculate the distribution
 plot(x,f,cstring(mod(n,7)+1))  % plot with a different color each time
end

どのように解決するのですか?

HSVなどのカラーマップを使って、色の集合を生成することができます。例えば

cc=hsv(12);
figure; 
hold on;
for i=1:12
    plot([0 1],[0 i],'color',cc(i,:));
end

MATLABは13種類の名前付きカラーマップ( 'ドキュメント・カラーマップ' はそれら全てをリストアップします)。

異なる色で線をプロットするための別のオプションは LineStyleOrder プロパティを使うことです。 プロット用の線の色を定義する を参照してください。