Теплова Карта
Теплова карта — це метод візуалізації двовимірних даних, у якому кольори використовуються для відображення величини кожного значення.
У цьому прикладі теплова карта використовується для відображення парних кореляцій між змінними у наборі даних.
Створення простої теплової карти
У бібліотеці seaborn
є функція heatmap()
. Її єдиний обов'язковий параметр — це data
, який повинен бути двовимірним (прямокутним) набором даних.
Найпоширеніший випадок використання теплової карти — це матриця кореляцій, як у наведеному вище прикладі. Для заданого DataFrame
спочатку потрібно викликати його метод corr()
, щоб отримати матрицю кореляцій, і лише потім передати цю матрицю як аргумент у функцію heatmap()
:
Поширений випадок використання теплової карти — відображення матриці кореляцій. Для заданого DataFrame
спочатку викликається метод corr()
, щоб отримати матрицю кореляцій, а потім ця матриця передається як аргумент у функцію 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()
Кореляційну матрицю було створено лише з числових стовпців DataFrame
. Стовпці, що містять рядки, були виключені шляхом встановлення параметра numeric_only=True
.
Анотації та кольори
Цю теплову карту можна зробити більш інформативною, додавши відповідне значення (коефіцієнт кореляції у нашому випадку) у кожну клітинку. Це можна зробити, просто встановивши параметр annot
у значення True
.
Також можливо змінити кольори для нашої теплової карти, встановивши параметр cmap
(ви можете ознайомитися з цим у статті "Вибір палітр кольорів").
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()
Колірна шкала праворуч може бути видалена шляхом встановлення cbar=False
.
У більшості випадків цього достатньо для налаштування теплової карти, проте ви завжди можете дізнатися більше у документації heatmap()
.
Покращення читабельності
Останнє, що може підвищити читабельність нашої теплової карти — це обертання підписів осей за допомогою вже знайомих функцій xticks()
та 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
- Використання відповідного методу для створення матриці кореляції.
- Встановлення аргументу методу для включення лише числових змінних.
- Використання відповідної функції для створення теплової карти.
- Встановлення
correlation_matrix
як даних для теплової карти шляхом зазначення першого аргументу. - Додавання значень у кожну клітинку матриці шляхом зазначення другого аргументу.
- Встановлення палітри (кольорової карти) теплової карти на
'crest'
шляхом зазначення третього (правого) аргументу. - Обертання підписів осі x та осі y на 15 градусів проти годинникової стрілки шляхом зазначення іменованого аргументу у функціях
xticks()
таyticks()
.
Рішення
Дякуємо за ваш відгук!