Python 2.7 叠加散射矩阵和matshow

Python 2.7 叠加散射矩阵和matshow,python-2.7,matplotlib,dataframe,correlation,scatter-plot,Python 2.7,Matplotlib,Dataframe,Correlation,Scatter Plot,我使用sci工具包中的iris数据获取以下数据帧: df = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target']) 绘制scatter_矩阵并使用matshow绘制相关矩阵给我图表和 分别为 我的问题如下。有没有办法把这些图叠起来?换句话说,在matshow(df.corr())上绘制散射矩阵 提前感谢。我

我使用sci工具包中的iris数据获取以下数据帧:

df = pd.DataFrame(data= np.c_[iris['data'], iris['target']],
                     columns= iris['feature_names'] + ['target'])
绘制
scatter_矩阵
并使用
matshow
绘制相关矩阵给我图表和 分别为

我的问题如下。有没有办法把这些图叠起来?换句话说,在
matshow(df.corr())
上绘制
散射矩阵


提前感谢。

我想您真正想要的是以相关矩阵的matshow图中显示的颜色对各个轴的背景进行着色

为此,我们可以通过向matplotlib colormap提供归一化(至0..1)相关矩阵来找出颜色,并使用
ax.set\u facecolor
更改轴背景颜色

import seaborn.apionly as sns
import pandas as pd
import matplotlib.pyplot as plt

# taking the iris from seaborn (should be same as scikit)
df = sns.load_dataset("iris")

axes  =pd.scatter_matrix(df)
corr = df.corr().values
corr_norm = (corr-corr.min())/(corr.max()-corr.min())

for i, ax in enumerate(axes.flatten()):
    c = plt.cm.viridis(corr_norm.flatten()[i])
    ax.set_facecolor(c)

plt.show()

那太好了。非常感谢你!