Varmekort
Et heatmap er en metode til at visualisere todimensionale data ved at bruge farver til at repræsentere størrelsen af hver værdi.
Dette eksempel anvender et heatmap til at repræsentere parvise korrelationer mellem variable i et datasæt.
Oprettelse af et simpelt heatmap
seaborn
har en funktion kaldet heatmap()
. Dens eneste påkrævede parameter er data
, som skal være et 2D (rektangulært) datasæt.
Den mest almindelige anvendelse af et heatmap er med en korrelationsmatrix som i eksemplet ovenfor. Givet en DataFrame
bør man først kalde dens corr()
-metode for at få en korrelationsmatrix og derefter videregive denne matrix som et argument til funktionen heatmap()
:
En almindelig anvendelse af et heatmap er visning af en korrelationsmatrix. Givet en DataFrame
, kald først dens corr()
-metode for at opnå korrelationsmatrixen, og videregiv derefter denne matrix som et argument til funktionen heatmap()
.
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Loading the dataset with the countries data url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/countries_data.csv' countries_df = pd.read_csv(url, index_col=0) # Creating a correlation matrix with all numeric variables correlation_matrix = countries_df.corr(numeric_only=True) # Creating a heatmap based on the correlation matrix sns.heatmap(correlation_matrix) plt.show()
Korrelationstabellen blev oprettet ved kun at bruge de numeriske kolonner i DataFrame
. Kolonner med tekst blev udelukket ved at sætte numeric_only=True
.
Annotation og farver
Dette heatmap kan gøres mere informativt ved at skrive den relevante værdi (korrelationskoefficienten i dette tilfælde) i hver celle. Dette kan nemt gøres ved at sætte parameteren annot
til True
.
Det er også muligt at ændre farverne for vores heatmap ved at angive parameteren cmap
(du kan udforske dette i "Valg af farvepaletter"-artiklen).
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Loading the dataset with the countries data url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/countries_data.csv' countries_df = pd.read_csv(url, index_col=0) # Creating a correlation matrix with all numeric variables correlation_matrix = countries_df.corr(numeric_only=True) # Setting annotation and color palette sns.heatmap(correlation_matrix, annot=True, cmap='viridis') plt.show()
Farvebjælken til højre kan fjernes ved at angive cbar=False
.
I de fleste tilfælde er dette alt, hvad du behøver for en heatmap-tilpasning, men du kan altid udforske mere i heatmap()
dokumentationen.
Forbedring af læsbarhed
Det sidste, der kan forbedre læsbarheden af vores heatmap, er at rotere ticks ved hjælp af de allerede kendte funktioner xticks()
og yticks()
:
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Loading the dataset with the countries data url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/countries_data.csv' countries_df = pd.read_csv(url, index_col=0) # Creating a correlation matrix with all numeric variables correlation_matrix = countries_df.corr(numeric_only=True) # Creating a heatmap based on the correlation matrix sns.heatmap(correlation_matrix, annot=True, cmap='viridis') # Rotating the ticks by 20 degrees counterclockwise plt.xticks(rotation=20) plt.yticks(rotation=20) plt.show()
Swipe to start coding
- Brug den korrekte metode til at oprette en korrelationsmatrix.
- Angiv argumentet for metoden, så kun numeriske variabler inkluderes.
- Brug den korrekte funktion til at oprette et heatmap.
- Angiv
correlation_matrix
som data til heatmappet ved at specificere det som det første argument. - Tilføj værdierne i hver celle i matricen ved at specificere det andet argument.
- Indstil paletten (farvekortet) for heatmappet til
'crest'
ved at specificere det tredje (yderste højre) argument. - Rotér x- og y-aksens mærker 15 grader mod uret ved at angive et nøgleordsargument i
xticks()
ogyticks()
.
Løsning
Tak for dine kommentarer!