Использование разных цветов в Matlab - PullRequest
3 голосов
/ 03 февраля 2012

В трехмерном графике рассеяния MATLAB у меня есть 15 различных кластеров данных, которые я хочу выделить.Я вижу, что MATLAB имеет 8 определенных цветов.Есть ли другой способ, которым я мог бы использовать еще 7 цветов только для того, чтобы выделить кластеры?

Спасибо

Ответы [ 3 ]

3 голосов
/ 03 февраля 2012

Я бы порекомендовал использовать эту отправку файлового обмена - Генерировать максимально воспринимаемые цвета

Позволяет создавать карты цветов с очень выдающимися цветами и применять их с COLORMAP функция.Для получения дополнительной информации см. Справку для этой отправки.

colors = distinguishable_colors(n_colors);

Для 3D-разброса вы можете использовать эти цвета в качестве аргумента (C) в SCATTER3 :

scatter3(X,Y,Z,[],colors)

Чтобы использовать эти цвета для разных линий, установите их в качестве порядка цвета по умолчанию для текущего рисунка:

set(gcf,'DefaultAxesColorOrder',colors)

или для всех рисунков:

set(0,'DefaultAxesColorOrder',colors
2 голосов
/ 03 февраля 2012

Вы можете использовать свойство color , используя set . Сначала вы должны получить дескриптор h для объектов рисования и set(h,'color',[0.2 0.3 0.9]). Цвет rgb от 0 до 1 для каждого канала.

1 голос
/ 03 февраля 2012

Из документации Matlab :

scatter (X, Y, S, C) отображаются цветные круги в местах, указанных векторами X и Y (которые должны бытьодинакового размера).

S определяет область каждого маркера (указана в точках ^ 2).S может быть вектором такой же длины, как X и Y или скаляр.Если S - скаляр, MATLAB рисует все маркеры одинакового размера.Если S пусто, используется размер по умолчанию.

C определяет цвет каждого маркера.Когда C является вектором такой же длины, как X и Y, значения в C линейно отображаются на цвета в текущей цветовой карте.Когда C представляет собой матрицу размером 1 на 3, она определяет цвета маркеров как значения RGB.Если у вас есть 3 точки на диаграмме рассеяния и вы хотите, чтобы цвета были индексами в цветовой карте, C должен быть матрицей 3 на 1.C также может быть строкой цвета (см. ColorSpec для списка спецификаторов строки цвета).

Так, например, скажем, что ваши кластеры задаются столбцами матриц X и Y, сk-й столбец - это k-й кластер, X - координаты X, а Y - координаты Y.Мы можем сделать то, что вы хотите, следующим образом:

% make some random data in clusters:
n = 15;
m = 42;
X = 0.2*rand(m,n) + repmat(rand(1,n),m,1);
Y = 0.2*rand(m,n) + repmat(rand(1,n),m,1);
% lets change the colour map:
colormap(jet);
% now plot each, one at a time, and each with a different colour:
hold on;
for k=1:n
    scatter(X(:,k),Y(:,k),40,k/n*ones(m,1));
end

Если вам не нравятся эти цвета, вы можете изменить цветовую карту, а если вам не нравятся цветные карты, вы можете, как и другиеответ указывает, вставьте любые значения RGB, которые вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...