Często nie ma potrzeby pobierania domyślnego cyklu kolorów z dowolnego miejsca, ponieważ jest to domyślny, więc wystarczy go użyć.
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
t = np.arange(5)
for i in range(4):
line, = ax.plot(t,i*(t+1), linestyle = '-')
ax.plot(t,i*(t+1)+.3,color = line.get_color(), linestyle = ':')
plt.show()
Jeśli chcesz użyć domyślnego cyklu kolorów do czegoś innego, istnieje oczywiście kilka opcji.
Mapa kolorów „tab10”
Najpierw należy wspomnieć, że "tab10"
mapa kolorów zawiera kolory z domyślnego cyklu kolorów, można ją pobrać za pośrednictwem cmap = plt.get_cmap("tab10")
.
Odpowiednik powyższego byłby zatem
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
t = np.arange(5)
cmap = plt.get_cmap("tab10")
for i in range(4):
ax.plot(t,i*(t+1), color=cmap(i), linestyle = '-')
ax.plot(t,i*(t+1)+.3,color=cmap(i), linestyle = ':')
plt.show()
Kolory z cyklu kolorów
Można również skorzystać z cyklicznych zmian kolorów bezpośrednio cycle = plt.rcParams['axes.prop_cycle'].by_key()['color']
. Daje to listę z kolorami z cyklu, których możesz użyć do iteracji.
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
t = np.arange(5)
cycle = plt.rcParams['axes.prop_cycle'].by_key()['color']
for i in range(4):
ax.plot(t,i*(t+1), color=cycle[i], linestyle = '-')
ax.plot(t,i*(t+1)+.3,color=cycle[i], linestyle = ':')
plt.show()
CN
notacja
Wreszcie, CN
notacja pozwala uzyskać N
th kolor cyklu kolorów color="C{}".format(i)
. Działa to jednak tylko dla pierwszych 10 kolorów ( N in [0,1,...9]
)
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
t = np.arange(5)
for i in range(4):
ax.plot(t,i*(t+1), color="C{}".format(i), linestyle = '-')
ax.plot(t,i*(t+1)+.3,color="C{}".format(i), linestyle = ':')
plt.show()
Wszystkie przedstawione tutaj kody dają ten sam wykres.
lines_colour_cycle = [p['color'] for p in plt.rcParams['axes.prop_cycle']]