Tampilkan hanya kolom pertama dalam matriks korelasi dengan Python

Saya telah membuat matriks korelasi kerangka data pandas menggunakan seaborn dengan perintah berikut:

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'
);

Saya mendapatkan plot matriks berikut:

masukkan deskripsi gambar di sini

Bagaimana Anda bisa menutupi matriks korelasi agar hanya menampilkan kolom pertama matriks? Saya juga ingin pertunjukan legenda di sisi kanan.

masukkan deskripsi gambar di sini


person Cody Glickman    schedule 12.04.2020    source sumber


Jawaban (2)


Dalam kasus Anda x adalah corrMatrix[['# of Prophages']]

df = pd.DataFrame({'A': np.random.rand(8), 'B': np.random.rand(8)})
corr = df.corr()

x = corr[['A']]
sns.heatmap(x)

kesalahan:

    A            B
A   1.000000    -0.192375
B   -0.192375   1.000000

sns.heatmap(corr):

masukkan deskripsi gambar di sini

sns.peta panas(x):

masukkan deskripsi gambar di sini

Ini mungkin membantu Anda:

Kredit diberikan ke 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)

Hasil:

masukkan deskripsi gambar di sini


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)

Keluaran:

masukkan deskripsi gambar di sini


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)

Keluaran:

masukkan deskripsi gambar di sini

person Pygirl    schedule 12.04.2020
comment
Didokumentasikan dengan sangat baik! Terima kasih atas jawabannya! - person Cody Glickman; 12.04.2020

Ini berhasil bagi saya pada data dummy:

df = pd.DataFrame(corrMatrix['# of Prophages'],
              index=corrMatrix.index)

sns.heatmap(df, annot=True, fmt="g", cmap='viridis')

plt.show()

Ini diadaptasi dari jawaban ini: Peta Panas Seaborn dengan satu kolom

person ananyamous    schedule 12.04.2020
comment
Terima kasih! Saya sedang mencari pertanyaan ini! Saya kira saya dapat menandai pertanyaan saya sebagai duplikat. Ini sangat membantu. - person Cody Glickman; 12.04.2020