Comment donner différentes couleurs quand je boucle de terrain dans MATLAB?
J'ai quelques données de dire X avec la taille (100,2). Ce X est composé de données pour 10 catégories (jeu de 10). Maintenant, je tiens à regarder le modèle dans les données pour chaque catégorie. Pour cela, j'ai besoin d'avoir des couleurs différentes attribuée à chaque catégorie. Je suis en train de la boucle au lieu de faire 10 parcelles différentes. J'ai essayé de le ci-dessous.
hold on
for i=1:10:100
plot(X(i:i+9,1),X(i:i+9,2),'.')
end
hold off
Cela m'a donné une parcelle avec la même couleur. Comment puis-je attribuer des couleurs différentes pour les différentes gamme?
OriginalL'auteur ChanChow | 2013-10-13
Vous devez vous connecter pour publier un commentaire.
La solution la plus simple est de remplacer
hold on
parhold all
.Si vous voulez plus de contrôle, vous devez définir manuellement vos spécifications de la ligne (plus d'info ici), puis à les transmettre à
plot
:OriginalL'auteur Luis Mendo
Les réponses mentionnant
hold all
sont correctes et utiles pour faire du vélo à travers les couleurs spécifiées par laColorOrder
axes
de la propriété (même si ce n'est quehold on
est maintenant équivalent àhold all
). Toutefois, par défaut MATLAB spécifie seulement une courte liste de couleurs (seulement 7 R2013b) pour faire défiler, et d'autre part, il peut être difficile de trouver un bon jeu de couleurs pour plus de la série de données. Pour les 10 parcelles, évidemment on ne peut pas invoquer le défautColorOrder
, donc un excellent moyen de définir N visuellement couleurs distinctes est avec le "Générer le Maximum de Perception des Couleurs Distinctes" (GMPDC) présentation sur le MATLAB Central de Fichier d'Échange de Fichiers. Il est mieux décrit dans les mots de l'auteur:Par exemple, voici les couleurs générées lors de la 25 sont demandés:
La GMPDC soumission a été choisi sur MathWorks' blog officiel que Choix de la Semaine il y a quelques années en partie à cause de la possibilité de demander un nombre arbitraire de couleurs (contrairement à MATLAB construit en 7 couleurs par défaut). Ils ont même fait l'excellente suggestion pour définir MATLAB
ColorOrder
au démarrage,Bien sûr, vous pouvez définir la
ColorOrder
pour un seul axe ou tout simplement de générer une liste de couleurs à utiliser de quelque façon que vous aimez. Par exemple, pour générer 10 "au maximum de perception des couleurs distinctes" et de les utiliser pour les 10 parcelles sur le même axe (n'utilisant pasColorOrder
):Alternativement, à l'aide de la
ColorOrder
axe de propriété simplifie le processus:ANNEXE
Pour obtenir le
ColorOrder
tableau RVB utilisé pour l'axe actuel,Pour obtenir la valeur par défaut
ColorOrder
pour les nouveaux axes,Exemple de fixer de nouvelles global
ColorOrder
avec 10 couleurs sur MATLAB démarrer, dansstartup.m
:ha = axes; hold(ha,'on')
ne fonctionne pas bien sur Matlab 2016b. Il produit cassé l'axe tiques, lors de la représentation de nombreuses parcelles en une seule figure.ha = gca;
travailléjuste crée de nouveaux axes, tandis que
gca
obtient la axes ou crée de nouveaux axes, si aucun n'est ouvert. Donc, si il ne fonctionne plus, et cela vaut déclaration de MathWorks. Cependant, je suis en cours d'exécution R2016b et je ne l'observe pas tous les problèmes. Vous pouvez poster une idée à reproduire? Et/ou une capture d'écran?OriginalL'auteur chappjc
hold on
permet de s'assurer de la nouvelleplot
commande ajoute à l'intrigue au lieu de la remplacer. Cependant, chaque commande fonctionne comme si elle était générant une nouvelle parcelle, y compris en commençant par la première ligne de couleur (bleu). Si vous voulez ultérieure parcelles utiliser des couleurs différentes, l'utilisationhold all
à la place. De cette façon, le standard 7 couleurs de ligne sont utilisés à tour de rôle.Puisque vous avez 10 lignes de l'intrigue, vous pouvez spécifier les couleurs explicitement pour s'assurer qu'ils sont tous différents. Pour cela, utilisez la syntaxe
Oh, génial. Une fois de plus, The Mathworks, dans leur infinie sagesse, a décidé de casser la compatibilité... >:( Aucune idée de comment ils s'en tirer avec ce comportement.
Parce qu'ils sont mieux que toutes les options. Jamais entendu parler de MatrixX? Précisément.
OriginalL'auteur A. Donda