Каков порядок цветов MATLAB по умолчанию?

У меня есть график с двумя гистограммами. Однако трудно сказать, какая гистограмма на графике исходит из первого набора данных, а какая-из второго. Для каждой гистограммы есть своя цветная линия: одна синяя, а другая зеленая. По умолчанию MATLAB 'ColorOrder' различаться между устройствами? Если нет - то каков приказ?

2 ответов


хороший вопрос! Существует порядок цветов по умолчанию для MATLAB. Обратите внимание, что в версиях до R2014b порядок цветов по умолчанию для MATLAB использует цветовую карту jet. На цветной карте jet первый участок синий, а затем второй участок зеленый. Для версий после R2014b это следует за цветовой картой parula, где первый участок будет более светлым синим, а второй участок - медным оранжевым. Если вы действительно хотите знать, какой порядок цветов для вашего сюжета, убедитесь, что сюжет открыт в MATLAB, затем выполните следующие действия:

get(gca,'colororder')

это вернет 2D-матрицу, где каждая строка дает вам долю красного, зеленого и синего для каждого графика, который вы производите. На моей машине во время этого сообщения, когда я запускал MATLAB R2013a и с Mac OSX 10.9.5, это то, что я получил:

>> 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

каждая строка дает вам красные, зеленые и синие значения для определенного цвета. Первая строка обозначает первый цвет на графике, далее следует вторая строка, обозначающая второй цвет и так далее.

как таковой, выше цвет заказа:

  1. чистый голубой
  2. светлый оттенок зеленого
  3. чистый красный
  4. смесь зеленого и синего, которая является голубой
  5. смесь красного и синего, которая является пурпурной
  6. смесь красный и зеленый, желтый
  7. светлая смесь красного, зеленого и голубого, которая выглядит как темнота серый.

В настоящее время (10 марта 2016), я использую MATLAB R2015a, и это цветовая карта, которую я получаю:

>> 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

кортежи RGB в этом случае немного сложнее, и поэтому трудно определить, что они такое, просто глядя на цвета.


в качестве дополнительного бонуса, мы можем создать изображение, которое визуализирует эти цвета для вас. Предполагая, что у вас есть панель обработки изображений, это код, который я написал, чтобы визуализировать эти цвета для каждого заговор вы размещаете в своей фигуре.

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

вот что я получил для MATLAB R2013a:

enter image description here

запуск этого кода снова в MATLAB R2015a, вот что я получаю:

enter image description here


кроме того, вы всегда можете использовать legend это определяет, какая гистограмма исходит из каких данных.


существует цветовая карта для этой конкретной цели -lines (введено перед R2006a). Вот что!--2--> говорит:

%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.

если вы открываете документацию lines, вы можете увидеть изображение предварительного просмотра, которое выглядит очень похоже на то, что появляется в rayryeng это!--13-->:

enter image description here

таким образом, пока вы используете по умолчанию colormap, чтобы узнать цвета первого n линии, все, что вам нужно сделать, это позвонить lines(n).