Quel Est L'ordre de couleur MATLAB par défaut?

j'ai un terrain avec deux histogrammes. Toutefois, il est difficile de dire quel histogramme sur la placette provient du premier ensemble de données et quels graphiques représentent le deuxième ensemble de données. Il y a une ligne de couleur différente pour chaque histogramme: l'une est bleue, et l'autre est verte. Le défaut MATLAB 'ColorOrder' varie entre les appareils? Si ce n'est pas ce qui est de l'ordre?

16
demandé sur Toad22222 2014-10-15 04:11:34

2 réponses

bonne question! Il y a un ordre de couleur par défaut pour MATLAB. Notez que les versions antérieures à R2014 B, l'ordre des couleurs par défaut pour MATLAB utilise la carte des couleurs jet. Dans la carte couleur du jet, la première parcelle est bleue, suivie de la deuxième parcelle est verte. Pour les versions postérieures à R2014 B, ceci suit la carte couleur de la parula, où la première parcelle serait d'un bleu plus clair suivi de la deuxième parcelle étant une sorte d'orange cuivré. Si vous voulez réellement savoir ce que l'ordre de couleur est pour votre parcelle, assurez-vous que la parcelle est ouverte dans MATLAB, puis faites ce qui suit:

get(gca,'colororder')

vous obtiendrez une matrice 2D où chaque ligne vous donne la proportion de rouge, de vert et de bleu pour chaque parcelle que vous produisez. Sur ma machine au moment de ce post quand J'ai lancé MATLAB R2013a et avec Mac OSX 10.9.5, c'est ce que j'ai eu:

>> get(gca,'colororder')

ans =

         0         0    1.0000
         0    0.5000         0
    1.0000         0         0
         0    0.7500    0.7500
    0.7500         0    0.7500
    0.7500    0.7500         0
    0.2500    0.2500    0.2500

chaque ligne vous donne les valeurs rouge, verte et bleue pour une couleur particulière. La première ligne indique la première couleur à aller sur le terrain, suivi de la deuxième rangée indiquant la deuxième couleur et ainsi de suite.

comme tel, l'ordre de couleur ci-dessus est:

  1. pur bleu
  2. Une teinte plus claire de vert
  3. Rouge Pur
  4. un mélange de vert et de bleu, qui est cyan
  5. un mélange de rouge et de bleu, qui est magenta
  6. Un mélange de rouge et de vert qui est jaune
  7. un mélange clair de rouge, de vert et de bleu, qui ressemble à un foncé gris.

actuellement (10 mars 2016), J'utilise MATLAB R2015a et c'est la carte couleur que j'obtiens:

>> get(gca,'colororder')

ans =

         0    0.4470    0.7410
    0.8500    0.3250    0.0980
    0.9290    0.6940    0.1250
    0.4940    0.1840    0.5560
    0.4660    0.6740    0.1880
    0.3010    0.7450    0.9330
    0.6350    0.0780    0.1840

les tuples RGB dans ce cas sont un peu plus complexes et il est donc difficile de déduire ce qu'ils sont en regardant simplement les couleurs.


en bonus, nous pouvons créer une image qui visualise ces couleurs pour vous. En supposant que vous ayez la boîte à outils de traitement d'image, voici le code que j'ai écrit pour visualiser ces couleurs pour chaque parcelle que vous placez dans votre figure.

colours = permute(get(gca, 'colororder'), [1 3 2]);
colours_resize = imresize(colours, 50.0, 'nearest');
imshow(colours_resize);

Voici ce que j'ai pour MATLAB R2013a:

enter image description here

Exécution de ce code en MATLAB R2015a, c'est ce que j'obtiens:

enter image description here


Sinon, vous pouvez toujours utiliser un legend qui délimite quel histogramme provient de quelles données.

24
répondu rayryeng 2016-03-11 00:19:41

Il existe une palette de couleurs pour ce but précis, - lines ( introduit avant R2006a). Voici ce que lines.m dit:

%LINES  Color map with the line colors.
%   LINES(M) returns an M-by-3 matrix containing a "ColorOrder"
%   colormap. LINES, by itself, is the same length as the current
%   colormap. If no figure exists, MATLAB uses the length of the
%   default colormap.

Si vous ouvrez la documentation de lines, vous pouvez voir une image de prévisualisation qui ressemble beaucoup à ce qui apparaît dans la réponse de rayryeng:

enter image description here

donc, tant que vous utilisez la valeur par défaut colormap, à savoir les couleurs de la première n lignes, tout ce que vous devez faire est d'appeler lines(n).

15
répondu Dev-iL 2017-05-23 12:17:55