Как установить цветовой цикл по умолчанию для всех подзаговоров с помощью matplotlib?
Как установить набор цветов по умолчанию для графиков, сделанных с помощью matplotlib? Я могу установить определенную цветовую карту, такую как
import numpy as np
import matplotlib.pyplot as plt
fig=plt.figure(i)
ax=plt.gca()
colormap = plt.get_cmap('jet')
ax.set_color_cycle([colormap(k) for k in np.linspace(0, 1, 10)])
но есть ли способ установить один и тот же набор цветов для всех графиков, включая подзаголовки?
Ответы
Ответ 1
Конечно! Либо укажите axes.color_cycle
в вашем файле .matplotlibrc
или установите его во время выполнения с помощью matplotlib.rcParams
или matplotlib.rc
.
В качестве примера последнего:
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
# Set the default color cycle
mpl.rcParams['axes.color_cycle'] = ['r', 'k', 'c']
# Alternately, we could use rc:
# mpl.rc('axes', color_cycle=['r','k','c'])
x = np.linspace(0, 20, 100)
fig, axes = plt.subplots(nrows=2)
for i in range(10):
axes[0].plot(x, i * (x - 10)**2)
for i in range(10):
axes[1].plot(x, i * np.cos(x))
plt.show()
![enter image description here]()
Ответ 2
Начиная с matplotlib 1.5, mpl.rcParams ['axes.color_cycle'] устарел. Вы должны использовать axes.prop_cycle:
import matplotlib as mpl
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["r", "#e94cdc", "0.7"])
Ответ 3
В версии 2.1.0 ниже работает у меня, используя set_prop_cycle и module cycler
from cycler import cycler
custom_cycler = (cycler(color=['r','b','m','g']))
ax.set_prop_cycle(custom_cycler)
Вы можете добавить дополнительный атрибут строки
custom_cycler = (cycler(color=['r','b','m','g']) + cycler(lw=[1,1,1,2]))
'ax' происходит от ax = plt.axes() или любого генератора осей