Рубрики
Без рубрики

Matplotlib Heatmap: Упрощенная Визуализация Данных

Тепловая карта Matplotlib используется для представления матрицы данных в виде различных цветов. Мы можем создать тепловую карту с помощью функции imshow.

Автор оригинала: Team Python Pool.

Matplotlib Heatmap: Упрощенная Визуализация Данных

Вы хотите представлять и понимать сложные данные? Лучше всего это сделать с помощью тепловых карт. Тепловая карта-это метод визуализации данных, который представляет данные с использованием различных цветов в двух измерениях. В Python мы можем создать тепловую карту, используя matplotlib и библиотеку seaborn. Хотя нет прямого метода, с помощью которого мы можем создавать тепловые карты с помощью matplotlib, мы можем использовать функцию matplotlib imshow для создания тепловых карт.

<В тепловой карте Matplotlib каждое значение (каждая ячейка матрицы) представлено другим цветом. Специалисты по обработке данных обычно используют тепловые карты, когда хотят понять корреляцию между различными характеристиками фрейма данных. Если вы не знаете всех этих терминов, не волнуйтесь, вы получите базовое представление об этом при обсуждении его реализации.

Синтаксис тепловой карты Matplotlib

Чтобы сгенерировать тепловую карту с помощью matplotlib, мы будем использовать функцию imshow matplotlib.pyplot и два ее параметра – ‘интерполяция’ и ‘cmap.’ Давайте разберемся в этих параметрах.

Перед этим вам необходимо установить библиотеку matplotlib в ваших системах, если вы еще не установили ее. Вам нужно использовать эту команду – pip install matplotlib.

imshow(data,)

Параметры-

  1. Data – В этом параметре данных мы должны передать 2D-массив в качестве входных данных.
  2. Cmap– Используя этот параметр, мы можем придать цвет нашему графику. Мы можем выбрать цвет из приведенных ниже вариантов.
  1. Интерполяция – Можно создавать различные типы графиков. Мы можем выбрать любое из следующих значений и заполнить параметр интерполяции.
antialiased, none, nearest, bilinear, bicubic, spline16, spline36, hanning, hamming, hermite, kaiser, quadric, catrom, gaussian, bessel, mitchell, sinc, lanczos, blackman

Тип возврата

<класс ‘matplotlib.image.AxesImage’>

Тепловые карты с использованием Matplotlib

Создание нашей первой тепловой карты с помощью matplotlib

Предположим, у нас есть оценки, полученные разными студентами по разным предметам из 100. Давайте посмотрим, как мы можем использовать тепловые карты для представления этих данных.

import matplotlib.pyplot as plt

# Create a array of marks in different subjects scored by different students .array([[50, 74, 40, 59,90, 98],
                    [72, 85, 64, 33, 47, 87],
                    [52, 97, 44, 73, 17, 56],
                    [69, 45, 89, 79,70, 48],
                    [87, 65, 56, 86, 72, 68],
                    [90, 29, 78, 66, 50, 32]])
# name of students
names=['Sumit','Ashu','Sonu','Kajal','Kavita','Naman']
# name of subjects
subjects=['Maths','Hindi','English','Social Studies','Science','Computer Science']

# Setting the labels of x axis.
# set the xticks as student-names
# rotate the labels by 90 degree to fit the names)
# Setting the labels of y axis.
# set the xticks as subject-names)
# use the imshow function to generate a heatmap
# cmap parameter gives color to the graph
# setting the interpolation will lead to different types of graphs
plt.imshow(marks,)
тепловая карта matplotlib
тепловая карта matplotlib

В приведенной выше тепловой карте темные цвета показывают хорошие отметки, а светлые-плохие. Тепловые карты регулируют яркость цвета в соответствии с самыми высокими и самыми низкими отметками в наборе данных. Самый высокий балл представлен самым темным цветом, а самый низкий-самым ярким.

Игра с интерполяцией и параметрами карты

Давайте теперь изменим карту и интерполяцию на тех же данных и посмотрим, какие разновидности графиков мы можем сделать.

import matplotlib.pyplot as plt.array([[50, 74, 40, 59,90, 98],
                    [72, 85, 64, 33, 47, 87],
                    [52, 97, 44, 73, 17, 56],
                    [69, 45, 89, 79,70, 48],
                    [87, 65, 56, 86, 72, 68],
                    [90, 29, 78, 66, 50, 32]])

names=['Sumit','Ashu','Sonu','Kajal','Kavita','Naman']
subjects=['Maths','Hindi','English','Social Studies','Science','Computer Science']
))
# set the cmap as Blues and interpolation as spline16
plt.imshow(marks,)
тепловая карта matplotlib
тепловая карта matplotlib

На этом графике, когда отметок больше, цвет довольно темный, а когда баллов меньше, цвет светлее.

Добавление цветовой панели в тепловую карту с помощью Matplotlib

Colorbar можно просто понимать как шкалу, которая помогает нам понять, какой цвет представляет какое значение. Кроме того, в matplotlib есть прямая функция для добавления цветовой полосы на график. Воспользуемся для этой цели теми же данными, что и выше.

import matplotlib.pyplot as plt.array([[50, 74, 40, 59,90, 98],
                    [72, 85, 64, 33, 47, 87],
                    [52, 97, 44, 73, 17, 56],
                    [69, 45, 89, 79,70, 48],
                    [87, 65, 56, 86, 72, 68],
                    [90, 29, 78, 66, 50, 32]])

names=['Sumit','Ashu','Sonu','Kajal','Kavita','Naman']
subjects=['Maths','Hindi','English','Social Studies','Science','Computer Science']
))
# save this plot inside a variable called hm.imshow(marks,)
# pass this heatmap object into plt.colorbar method.
plt.colorbar(hm)

Вы можете увидеть вертикальную линию вокруг тепловой карты. Это цветовая полоса. Это ясно указывает на то, что для более высоких отметок цвет темный, а для более низких-более светлый.

Корреляция между объектами в фрейме данных Pandas с использованием тепловой карты matplotlib

Одним из самых больших применений тепловой карты является анализ корреляции между различными характеристиками a href=”https://en.wikipedia.org/?title=Data_frame&redirect=no”> фрейм данных. Особенности означают столбцы, а корреляция-это то, насколько значения в этих столбцах связаны друг с другом. href=”https://en.wikipedia.org/?title=Data_frame&redirect=no”> фрейм данных. Особенности означают столбцы, а корреляция-это то, насколько значения в этих столбцах связаны друг с другом.

Возьмем фрейм данных и проанализируем корреляцию между его характеристиками с помощью тепловой карты.

import pandas as pd
import matplotlib.pyplot as plt

# this is our data
x=[[1.,337.,118.,4.,4.5 ,4.5 ,9.65,1.,0.92],[2.,324.,107.,4.,4.,4.5 ,8.87,1.,0.76],[3.,316.,104.,3.,3.,3.5 ,8.,1.,0.72],
[4.,322.,110.,3.,3.5 ,2.5 ,8.67,1.,0.8 ],[5.,314.,103.,2.,2.,3.,8.21,0.,0.65],[6.,330.,115.,5.,4.5 ,3.,9.34,1.,0.9 ],
[7.,321.,109.,3.,3.,4.,8.2 ,1.,0.75],[8.,308.,101.,2.,3.,4.,7.9 ,0.,0.68],[9.,302.,102.,1.,2.,1.5 ,8.,0.,0.5 ],
[ 10.,323.,108.,3.,3.5 ,3.,8.6 ,0.,0.45],[ 11.,325.,106.,3.,3.5 ,4.,8.4 ,1.,0.52],[ 12.,327.,111.,4.,4.,4.5 ,9.,1.,0.84],
[ 13.,328.,112.,4.,4.,4.5 ,9.1 ,1.,0.78],[ 14.,307.,109.,3.,4.,3.,8.,1.,0.62],[ 15.,311.,104.,3.,3.5 ,2.,8.2 ,1.,0.61],
[ 16.,314.,105.,3.,3.5 ,2.5 ,8.3 ,0.,0.54],[ 17.,317.,107.,3.,4.,3.,8.7 ,0.,0.66],[ 18.,319.,106.,3.,4.,3.,8.,1.,0.65],
[ 19.,318.,110.,3.,4.,3.,8.8 ,0.,0.63],[ 20.,303.,102.,3.,3.5 ,3.,8.5 ,0.,0.62],[ 21.,312.,107.,3.,3.,2.,7.9 ,1.,0.64],
[ 22.,325.,114.,4.,3.,2.,8.4 ,0.,0.7 ],[ 23.,328.,116.,5.,5.,5.,9.5 ,1.,0.94],[ 24.,334.,119.,5.,5.,4.5 ,9.7 ,1.,0.95],
[ 25.,336.,119.,5.,4.,3.5 ,9.8 ,1.,0.97],[ 26.,340.,120.,5.,4.5 ,4.5 ,9.6 ,1.,0.94],
[ 27.,322.,109.,5.,4.5 ,3.5 ,8.8 ,0.,0.76],[ 28.,298.,98.,2.,1.5 ,2.5 ,7.5 ,1.,0.44],[ 29.,295.,93.,1.,2.,2.,7.2 ,0.,0.46],
[ 30.,310.,99.,2.,1.5 ,2.,7.3 ,0.,0.54],[ 31.,300.,97.,2.,3.,3.,8.1 ,1.,0.65],
[ 32.,327.,103.,3.,4.,4.,8.3 ,1.,0.74], [ 33.,338.,118.,4.,3.,4.5 ,9.4 ,1.,0.91], [ 34.,340.,114.,5.,4.,4.,9.6 ,1.,0.9 ],
[ 35.,331.,112.,5.,4.,5.,9.8 ,1.,0.94], [ 36.,320.,110.,5.,5.,5.,9.2 ,1.,0.88],
[ 37.,299.,106.,2.,4.,4.,8.4 ,0.,0.64], [ 38.,300.,105.,1.,1.,2.,7.8 ,0.,0.58], [ 39.,304.,105.,1.,3.,1.5 ,7.5 ,0.,0.52],
[ 40.,307.,108.,2.,4.,3.5 ,7.7 ,0.,0.48], [ 41.,308.,110.,3.,3.5 ,3.,8.,1.,0.46], [ 42.,316.,105.,2.,2.5 ,2.5 ,8.2 ,1.,0.49],
[ 43.,313.,107.,2.,2.5 ,2.,8.5 ,1.,0.53], [ 44.,332.,117.,4.,4.5 ,4.,9.1 ,0.,0.87], [ 45.,326.,113.,5.,4.5 ,4.,9.4 ,1.,0.91],
[ 46.,322.,110.,5.,5.,4.,9.1 ,1.,0.88], [ 47.,329.,114.,5.,4.,5.,9.3 ,1.,0.86], [ 48.,339.,119.,5.,4.5 ,4.,9.7 ,0.,0.89],
[ 49.,321.,110.,3.,3.5 ,5.,8.85,1.,0.82], [ 50.,327.,111.,4.,3.,4.,8.4 ,1.,0.78]]

# column name
columns=['Serial No.', 'GRE Score', 'TOEFL Score', 'University Rating', 'SOP',
       'LOR ', 'CGPA', 'Research', 'Chance of Admit ']

# create a dataframe with the above values and column names )

# to find the correlation, use corr() method on the dataset.corr()
)
plt.yticks(range(len(columns)),columns)
plt.imshow(corr,)
тепловая карта matplotlib
тепловая карта matplotlib

В приведенной выше тепловой карте, чем светлее значение, тем больше корреляция между признаками. Вы можете видеть, что если мы хотим проверить, какие функции больше коррелируют с Шансом признания, вы увидите следующую строку-

Обратите внимание, что для более высокого шанса поступления CGPA и Университет имеют наибольшее значение, потому что они имеют очень яркие цвета. Кроме того, серийный номер и исследования не имеют большого значения.Вот как мы используем тепловые карты в науке о данных.

Тепловые карты с использованием Seaborn

< strong>Seaborn-это библиотека визуализации данных, построенная поверх matplotlib и содержащая прямую функцию создания тепловых карт. Перед использованием seaborn установите его в свои системы с помощью pip install seaborn.

Мы будем использовать приведенные выше данные, чтобы увидеть, как можно создать тепловую карту seaborn.

# import the seaborn library and give alias as sns
import seaborn as sns
# use heatmap function, set the color as viridis and
# make each cell seperate using linewidth parameter)
тепловая карта в matplotlib
тепловая карта в matplotlib

Надо Читать:

  • Как преобразовать строку в нижний регистр в
  • Как вычислить Квадратный корень
  • Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
  • Лучшая книга для изучения Python

Вывод

Чтобы лучше анализировать и визуализировать данные, мы можем использовать тепловые карты. Для создания тепловых карт с помощью matplotlib нам нужно использовать функцию imshow с параметрами cmap и интерполяции. Data Scientist обычно использует тепловые карты для анализа корреляции между различными характеристиками набора данных.