【问题标题】:Show only first column in a correlation matrix in Python在 Python 中仅显示相关矩阵中的第一列
【发布时间】:2020-07-24 17:41:01
【问题描述】:

我使用 seaborn 使用以下命令创建了熊猫数据框的相关矩阵:

corrMatrix = df.corr()
#sns.heatmap(corrMatrix, annot=True)
#plt.show()

ax = sns.heatmap(
    corrMatrix, 
    vmin=-1, vmax=1, center=0,
    cmap=sns.diverging_palette(20, 220, n=200),
    square=True, annot=True
)
ax.set_xticklabels(
    ax.get_xticklabels(),
    rotation=45,
    horizontalalignment='right'
);

我得到以下矩阵图:

如何屏蔽相关矩阵以仅显示矩阵的第一列?我也想要右边的传奇表演。

【问题讨论】:

    标签: python pandas data-visualization seaborn correlation


    【解决方案1】:

    这对我有用的虚拟数据:

    df = pd.DataFrame(corrMatrix['# of Prophages'],
                  index=corrMatrix.index)
    
    sns.heatmap(df, annot=True, fmt="g", cmap='viridis')
    
    plt.show()
    

    这是改编自这个答案:Seaborn Heatmap with single column

    【讨论】:

    • 谢谢!我正在寻找这个问题!我想我可以将我的问题标记为重复。这很有帮助。
    【解决方案2】:

    在你的情况下,xcorrMatrix[['# of Prophages']]

    df = pd.DataFrame({'A': np.random.rand(8), 'B': np.random.rand(8)})
    corr = df.corr()
    
    x = corr[['A']]
    sns.heatmap(x)
    

    更正:

        A            B
    A   1.000000    -0.192375
    B   -0.192375   1.000000
    

    sns.heatmap(corr):

    sns.heatmap(x):

    这可能会对您有所帮助:

    归功于unutbu

    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    import seaborn.matrix as smatrix
    
    sns.set()
    
    flights_long = sns.load_dataset("flights")
    flights = flights_long.pivot("month", "year", "passengers")
    flights = flights.reindex(flights_long.iloc[:12].month)
    sns.heatmap(flights)
    

    结果:


    columns = [1953]
    myflights = flights.copy()
    mask = myflights.columns.isin(columns)
    myflights.loc[:, mask] = 0
    arr = flights.values
    vmin, vmax = arr.min(), arr.max()
    sns.heatmap(flights, mask=myflights, annot=True, fmt="d", vmin=vmin, vmax=vmax)
    

    输出:


    columns = [1953]
    myflights = flights.copy()
    mask = myflights.columns.isin(columns)
    myflights = myflights.loc[:, mask]
    arr = flights.values
    vmin, vmax = arr.min(), arr.max()
    sns.heatmap(myflights, annot=True, fmt="d", vmin=vmin, vmax=vmax)
    

    输出:

    【讨论】:

    • 非常有据可查!感谢您的彻底回答!
    猜你喜欢
    • 2022-11-14
    • 2019-07-15
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    相关资源
    最近更新 更多