То, что вы просите, это циклическая карта цветов.На данный момент matplotlib предоставляет только одну циклическую карту цветов, а именно "hsv"
.Однако вы можете легко определить свою собственную цветовую карту и убедиться, что она является циклической, например, используя цвета ["gold", "red", "black", "navy", "gold"]
, где первый и последний цвета совпадают.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
plt.rcParams['lines.markersize'] = 12
x = np.arange(200)
y = np.ones(200)
fig, ax = plt.subplots()
ax.scatter(x,y, c=x % 52, marker="|" )
ax.scatter(x,y-1, c=x % 52, cmap="hsv", marker="|" )
colors = ["gold", "red", "black", "navy", "gold"]
cmap = mcolors.LinearSegmentedColormap.from_list("", colors)
ax.scatter(x,y-2, c=x % 52, cmap=cmap, marker="|" )
ax.set_yticks([-1,0,1])
ax.set_yticklabels(["custom", "hsv", "viridis", ])
ax.margins(y=0.4)
plt.show()