Matlab выбирает случайный цвет для черчения - PullRequest
21 голосов
/ 12 июля 2010

У меня есть 6 векторов, которые я хочу построить.Как я могу сделать каждый сюжет с разным цветом (случайным образом)?С кодом ниже, график ограничен одним цветом для всех шести векторов.

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

Ответы [ 2 ]

42 голосов
/ 12 июля 2010

Вы можете PLOT автоматически выбирать цвета линий для вас.Если все 6 ваших векторов имеют одинаковую длину, вы можете поместить координаты x и y в матрицы N × 6 X и Y и передать их в PLOT .Для каждого столбца будет использоваться другой цвет:

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

Вы также можете использовать некоторые из встроенных colormaps , чтобы создать набор цветов, а затем использовать их при построении каждогострока отдельно.Например:

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
4 голосов
/ 12 июля 2010

Чтобы создать случайную цветовую карту, вы можете сделать следующее

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

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

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