Похоже, никто еще не упомянул встроенный метод pyplot для зацикливания свойств. Итак, вот оно:
import numpy as np
import matplotlib.pyplot as plt
from cycler import cycler
x = np.linspace(0,3,20)
y = np.sin(x)
fig = plt.figure()
plt.gca().set_prop_cycle(marker=['o', '+', 'x', '*', '.', 'X']) # gca()=current axis
for q,p in zip(x,y):
plt.plot(q,p, linestyle = '')
plt.show()

Однако таким образом вы теряете цветовой цикл. Вы можете добавить задний цвет, умножая или добавляя цвет cycler
и объект маркера cycler
, например:
fig = plt.figure()
markercycle = cycler(marker=['o', '+', 'x', '*', '.', 'X'])
colorcycle = cycler(color=['blue', 'orange', 'green', 'magenta'])
# Or use the default color cycle:
# colorcycle = cycler(color=plt.rcParams['axes.prop_cycle'].by_key()['color'])
plt.gca().set_prop_cycle(colorcycle * markercycle) # gca()=current axis
for q,p in zip(x,y):
plt.plot(q,p, linestyle = '')
plt.show()

При добавлении циклов они должны иметь одинаковую длину, поэтому в этом случае мы используем только первые четыре элемента markercycle
:
plt.gca().set_prop_cycle(colorcycle + markercycle[:4]) # gca()=current axis

16.01.2020