Как установить цветовой цикл по умолчанию для всех участков с помощью matplotlib? - PullRequest
56 голосов
/ 22 февраля 2012

Как мне установить набор цветов по умолчанию для графиков, созданных с помощью 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)])

но есть ли способ установить одинаковый набор цветов для всех графиков, включая субплоты?

Ответы [ 3 ]

68 голосов
/ 22 февраля 2012

Конечно! Либо укажите 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

40 голосов
/ 13 мая 2016

Начиная с 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"]) 
0 голосов
/ 21 июня 2019

В версии 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 () или любого генератора осей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...