web-dev-qa-db-fra.com

Matlab choisit une couleur aléatoire pour le traçage

J'ai 6 vecteurs que je veux tracer. Comment puis-je faire chaque parcelle avec une couleur différente (aléatoire)? Avec le code ci-dessous, le tracé est limité à une couleur pour les six vecteurs.

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

Vous pouvez avoir PLOT choisir automatiquement les couleurs de ligne pour vous. Si vos 6 vecteurs sont tous de la même longueur, vous pouvez mettre les coordonnées x et y dans les matrices N-par-6 X et Y et les transmettre à TRACER . Une couleur différente sera utilisée pour chaque colonne:

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

Vous pouvez également utiliser une partie des colormaps pour générer un ensemble de couleurs, puis les utiliser lorsque vous tracez chaque ligne séparément. Par exemple:

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

Pour créer une carte de couleurs aléatoire, vous pouvez procéder comme suit

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

Cependant, comme je l'ai indiqué dans mon commentaire à la réponse de gnovice, le choix des couleurs dans une palette de couleurs fournit généralement des combinaisons de couleurs beaucoup plus lisibles.

4
Kena