[Matlab] Tracer automatiquement différentes lignes colorées


Answers

En fait, une méthode de raccourci décent pour obtenir les couleurs de cycle est d'utiliser hold all; à la place de hold on; . Chaque plot successive tournera (automatiquement pour vous) grâce à la palette de couleurs par défaut de MATLAB.

Depuis le site MATLAB en hold :

hold all contient le tracé et la couleur et le style de ligne de la ligne en cours, de sorte que les commandes de traçage suivantes ne réinitialisent pas les valeurs des propriétés ColorOrder et LineStyleOrder au début de la liste. Les commandes de traçage continuent à parcourir les couleurs prédéfinies et les styles linéaires à partir desquels le dernier tracé s'est arrêté dans la liste.

Question

J'essaie de tracer plusieurs estimations de densité de noyau sur le même graphique, et je veux qu'elles soient toutes de couleurs différentes. J'ai une solution explicite en utilisant une chaîne 'rgbcmyk' et en la parcourant pour chaque intrigue séparée, mais je commence à avoir des doublons après 7 itérations. Y at-il un moyen plus facile / plus efficace de le faire, et avec plus d'options de couleur?

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



Tard à la fête. Je cherchais moi-même dans ce domaine et je viens de trouver sur cette option d'axes appelée ColorOrder, vous pouvez spécifier l'ordre des couleurs pour la session ou juste pour la figure, puis tracer un tableau et laisser MATLAB automatiquement parcourir les couleurs spécifiées.

voir Modification du paramètre ColorOrder par défaut

Exemple

set(0,'DefaultAxesColorOrder',jet(5))
A=rand(10,5);
plot(A);