Если вы посмотрите на источник pd.plotting.scatter_matrix :
def scatter_matrix(frame, alpha=0.5, figsize=None, ax=None,
grid=False,
diagonal='hist', marker='.', density_kwds=None,
hist_kwds=None, range_padding=0.05, **kwds): # <---
[...]
# Deal with the diagonal by drawing a histogram there.
if diagonal == 'hist':
ax.hist(values, **hist_kwds) # <---
[...]
else:
common = (mask[a] & mask[b]).values
ax.scatter(df[b][common], df[a][common],
marker=marker, alpha=alpha, **kwds) # <---
вы видите, что функция берет **kwds
и передает их ax.scatter
Итак, вы можете либо напрямую подавать цвета:
colors = iris['species'].replace({'setosa':'red', 'virginica': 'green', 'versicolor':'blue'})
pd.plotting.scatter_matrix(iris, c=colors);
или вы конвертируете виды в числа и используете цветовую карту:
colors = iris['species'].replace({'setosa':1, 'virginica': 2, 'versicolor':3})
pd.plotting.scatter_matrix(iris, c=colors, cmap='viridis');
далее, функция принимает density_kwds
и hist_kwds
и передает их в ax.plot
и ax.hist
, соответственно.
Таким образом, вы можете изменить цвет гистограмм, передав словарь. То же самое для kdeplots:
pd.plotting.scatter_matrix(iris, hist_kwds={'color':'red'})