Как уже упоминалось @datasailor, вы должны умножить оба цикла:
cycler_op1 = cycler('color', ['r', 'g', 'b', 'y', 'c', 'k']) \
* cycler('linestyle', ['-', '--', ':', '-.', '-', '--'])
cycler_op2 = cycler('linestyle', ['-', '--', ':', '-.', '-', '--']) \
* cycler('color', ['r', 'g', 'b', 'y', 'c', 'k'])
rc('axes', prop_cycle = cycler_op1 ) # or cycler_op2
Обратите внимание, что умножение не является коммутативным, и вы получите другой результат. По сути, в первом случае цвет фиксируется, а стиль линий изменяется. Во втором случае стиль линии фиксируется, а цвет меняется. Всего 6х6 = 36 возможностей.


При таком большом количестве кривых вы можете поэкспериментировать с большим количеством цветов и стилей линий.
ls_cycler = cycler('linestyle',
[(0,()), # solid
(0, (1, 10)), # loosely dotted
(0, (1, 5)), # dotted
(0, (1, 1)), # densely dotted
(0, (5, 10)), # loosely dashed
(0, (5, 5)), # dashed
(0, (5, 1)), # densely dashed
(0, (3, 10, 1, 10)), # loosely dashdotted
(0, (3, 5, 1, 5)), # dashdotted
(0, (3, 1, 1, 1)), # densely dashdotted
(0, (3, 10, 1, 10, 1, 10)), # loosely dashdotdotted
(0, (3, 5, 1, 5, 1, 5)), # dashdotdotted
(0, (3, 1, 1, 1, 1, 1))] # densely dashdotdotted
)
color_cycler = cycler('color', [plt.get_cmap('jet')(i/13) for i in range(13)] )
new_cycler = color_cycler + ls_cycler
Результат выглядит так:
