Поскольку PairGrid
автоматически передает атрибут цвета в функцию построения графика, один из способов получить другой цвет для каждого графика - создать собственную функцию построения графика, которая игнорирует цвет, переданный PairGrid
(обратите внимание, что вы теряете возможность цветовой код hues
очевидно)
colors = iter(['xkcd:red purple', 'xkcd:pale teal', 'xkcd:warm purple',
'xkcd:light forest green', 'xkcd:blue with a hint of purple',
'xkcd:light peach', 'xkcd:dusky purple', 'xkcd:pale mauve',
'xkcd:bright sky blue', 'xkcd:baby poop green', 'xkcd:brownish',
'xkcd:moss green', 'xkcd:deep blue', 'xkcd:melon',
'xkcd:faded green', 'xkcd:cyan', 'xkcd:brown green',
'xkcd:purple blue', 'xkcd:baby shit green', 'xkcd:greyish blue'])
def my_scatter(x,y, **kwargs):
kwargs['color'] = next(colors)
plt.scatter(x,y, **kwargs)
def my_hist(x, **kwargs):
kwargs['color'] = next(colors)
plt.hist(x, **kwargs)
iris = sns.load_dataset("iris")
g = sns.PairGrid(iris)
g.map_diag(my_hist)
g.map_offdiag(my_scatter)