I see no way to do this right out of the box. The direct way is to manually set the color / style for each line.
Here is a more automated solution. Let's start with an example taken from the documentation:
%# defaults are set sometime before set(0, 'DefaultAxesColorOrder',[1 0 0;0 1 0;0 0 1], ... 'DefaultAxesLineStyleOrder','-|--|:') %# do plotting as usual t = 0:pi/20:2*pi; a = zeros(length(t),9); for i = 1:9 a(:,i) = sin(ti/5)'; end h = plot(t,a);
As you explained in your question, the default behavior is to scroll colors first and then line styles. If you want to apply them yourself, try the following:
c = num2cell(get(0,'DefaultAxesColorOrder'),2); l = cellstr(get(0,'DefaultAxesLineStyleOrder')); set(h, {'Color'}, c(rem((1:numel(h))-1,numel(c))+1), ... {'LineStyle'}, l(rem((1:numel(h))-1,numel(l))+1))
Perhaps you can wrap this in a function for easy access (you still have to pass descriptors to line graphic objects):
function applyColorLineStyleIndependently(h) %

source share