Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Värmekarta | Visualisering med Seaborn
Ultimat Visualisering med Python

book
Värmekarta

Note
Definition

En värmekarta är en metod för att visualisera tvådimensionell data genom att använda färger för att representera storleken på varje värde.

Detta exempel använder en värmekarta för att representera parvisa korrelationer mellan variabler i en datamängd.

Skapa en enkel värmekarta

seaborn har en funktion som heter heatmap(). Dess enda obligatoriska parameter är data, som ska vara en tvådimensionell (rektangulär) datamängd.

Det kanske vanligaste användningsområdet för en värmekarta är med en korrelationsmatris som i exemplet ovan. Givet en DataFrame bör vi först anropa dess corr()-metod för att få en korrelationsmatris och därefter skicka denna matris som ett argument till funktionen heatmap():

Ett vanligt användningsområde för en värmekarta är att visa en korrelationsmatris. Givet en DataFrame, anropa först dess corr()-metod för att erhålla korrelationsmatrisen och skicka sedan denna matris som ett argument till 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()
123456789101112131415
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()
copy

Korrelationsmatrisen skapades med enbart numeriska kolumner i DataFrame. Kolumner som innehåller strängar exkluderades genom att ange numeric_only=True.

Annotationer och färger

Denna värmekarta kan göras mer informativ genom att skriva ut det aktuella värdet (korrelationskoefficienten i detta fall) i varje cell. Detta kan enkelt göras genom att sätta parametern annot till True.

Note
Notera

Det är också möjligt att ändra färgerna för vår värmekarta genom att ange parametern cmap (du kan utforska detta i "Välja färgpaletter"-artikeln).

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()
123456789101112131415
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()
copy

Färgskalan till höger kan tas bort genom att ange cbar=False.

Note
Studera vidare

I de flesta fall är detta allt du behöver för en anpassning av värmekarta, men du kan alltid utforska mer i heatmap() dokumentationen.

Förbättrad läsbarhet

Det sista som skulle förbättra läsbarheten av vår värmekarta är att rotera markeringarna med de redan bekanta funktionerna xticks() och 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()
12345678910111213141516171819
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()
copy
Uppgift

Swipe to start coding

  1. Använd rätt metod för att skapa en korrelationsmatris.
  2. Ange argumentet för metoden så att endast numeriska variabler inkluderas.
  3. Använd rätt funktion för att skapa en värmekarta (heatmap).
  4. Ange correlation_matrix som data för värmekartan genom att specificera det som första argument.
  5. Lägg till värden i varje cell i matrisen genom att specificera det som andra argument.
  6. Ange paletten (färgkartan) för värmekartan till 'crest' genom att specificera det som tredje (sista) argument.
  7. Rotera x- och y-axelns etiketter 15 grader moturs genom att ange ett nyckelordsargument i xticks() och yticks().

Lösning

import seaborn as sns
import matplotlib.pyplot as plt

# Loading the dataset with data about the penguins features
penguins_df = sns.load_dataset('penguins')

# Create a correlation matrix with all numeric variables
correlation_matrix = penguins_df.corr(numeric_only=True)

# Create a heatmap based on the correlation matrix
sns.heatmap(correlation_matrix, annot=True, cmap='crest')

# Rotate the ticks by 15 degrees counterclockwise
plt.xticks(rotation=15)
plt.yticks(rotation=15)

plt.show()
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 7
single

single

import seaborn as sns
import matplotlib.pyplot as plt

# Loading the dataset with data about the penguins features
penguins_df = sns.load_dataset('penguins')

# Create a correlation matrix with all numeric variables
correlation_matrix = ___.___(___=___)

# Create a heatmap based on the correlation matrix
___.___(___, ___=___, ___='___')

# Rotate the ticks by 15 degrees counterclockwise
plt.xticks(___=___)
plt.yticks(___=___)

plt.show()

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt