堆叠scatter_matrix和matshow

时间:2017-05-11 12:04:52

标签: python-2.7 matplotlib dataframe correlation scatter-plot

我正在使用sci-kit-learn的虹膜数据来获取以下数据框:

df = pd.DataFrame(data= np.c_[iris['data'], iris['target']],
                     columns= iris['feature_names'] + ['target'])

绘制scatter_matrix并使用matshow绘制相关矩阵,为我提供图scatter_matrix plot和 分别为matshow(df.corr())

我的问题如下。有没有办法堆叠这些图表?换句话说,将scatter_matrix绘制在matshow(df.corr())

提前致谢。

1 个答案:

答案 0 :(得分:0)

我想你真正想要的是在相关矩阵的matshow图中出现的颜色中各个轴的背景着色。

为此,我们可以通过将标准化(到0..1)相关矩阵提供给matplotlib色彩图并使用ax.set_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()

enter image description here