Ваша проблема заключается в том, что вы реплотируете все три ваших линий несколько раз, каждый раз с другим цветом, в последний раз с черным. Вы должны либо построить каждую линию без цикла, например:
line(count, apples, 'LineStyle', '-', 'LineWidth', 2, ...
'Marker', 'x', 'MarkerSize', 10, ...
'Color', C{1}, 'DisplayName', 'apples');
line(count, oranges, 'LineStyle', '-', 'LineWidth', 2, ...
'Marker', '.', 'MarkerSize', 10, ...
'Color', C{2}, 'DisplayName', 'oranges');
line(count, grapes, 'LineStyle', '-', ...
'Marker', '.', 'MarkerSize', 10, ...
'Color', C{3}, 'DisplayName', 'grapes');
% ^
% Note this difference
Или вызовите line
один раз внутри цикла, например:
data = {apples, oranges, grapes}; % Cell array of your y data
markers = {'x', '.', '.'}; % Cell array of your markers
names = {'apples', 'oranges', 'grapes'}; % Cell array of your names
for iLine = 1:numel(data)
line(count, data{iLine}, 'LineStyle', '-', ...
'Marker', markers{iLine}, 'MarkerSize', 10, ...
'Color', C{iLine}, 'DisplayName', names{iLine});
end
Третий вариант - обновить ColorOrder
свойство осей, чтобы оно автоматически (и многократно) переключалось между вашими предпочтительными цветами (определяемыми как тройки RGB). Обратите внимание, что вам придется использовать plot
вместо line
, чтобы создать свои строки следующим образом:
C = [0 0 1; 1 0 0; 0 1 0; 1 0 1; 0 0 0];
set(gca, 'ColorOrder', C);
hold on;
plot(count, apples, 'LineStyle', '-', 'LineWidth', 2, ...
'Marker', 'x', 'MarkerSize', 10, 'DisplayName', 'apples');
plot(count, oranges, 'LineStyle', '-', 'LineWidth', 2, ...
'Marker', '.', 'MarkerSize', 10, 'DisplayName', 'oranges');
plot(count, grapes, 'LineStyle', '-', ...
'Marker', '.', 'MarkerSize', 10, 'DisplayName', 'grapes');