В этой статье мы расскажем о построении тепловых карт с помощью библиотеки matplotlib. Тепловая карта — отличный инструмент для визуализации данных на поверхности. Она выделяет данные с более высокой или более низкой концентрацией в распределении данных.
Тепловая карта
2D-тепловая карта — это инструмент визуализации данных, который помогает представить величину матрицы в виде цветной таблицы. В Python мы можем создавать 2D-тепловые карты, используя пакеты Matplotlib и Seaborn. Существуют различные методы построения 2D-тепловых карт, некоторые из которых обсуждаются ниже.
Примеры использования тепловых карт
Как мы знаем, тепловая карта — это просто цветное представление матрицы. Однако у тепловой карты очень широкий спектр применения. Мы можем использовать тепловые карты для следующих целей.
- Он используется для отображения корреляции между столбцами набора данных, где мы можем использовать более тёмный цвет для столбцов с высокой корреляцией.
- Мы также можем использовать тепловые карты для построения различных временных рядов и финансовых данных, где по оси Y будет отображаться месяц, по оси X — год, а элементом тепловой карты будут наши данные.
Базовая тепловая карта с использованием библиотеки Python Matplotlib
Здесь мы построим тепловую карту с помощью функции matplotlib.pyplot.imshow().
Синтаксис:
matplotlib.pyplot.imshow(X, cmap=None, alpha=None)
- X:- это матрица входных данных, которая должна отображаться
- cmap:- Colormap мы используем для отображения тепловой карты
- alpha : - определяет непрозрачность или прозрачность тепловой карты
# Program to plot 2-D Heat map
# using matplotlib.pyplot.imshow() method
import numpy as np
import matplotlib.pyplot as plt
data = np.random.random(( 12 , 12 ))
plt.imshow( data )
plt.title( "2-D Heat Map" )
plt.show()
Вывод:
Выбор различных цветовых карт в Heatmap с помощью Matplotlib
Мы можем выбрать разные цвета для тепловой карты с помощью параметра cmap. cmap поможет нам сделать тепловую карту более информативной.
# Program to plot 2-D Heat map
# using matplotlib.pyplot.imshow() method
import numpy as np
import matplotlib.pyplot as plt
data = np.random.random((12, 12))
plt.imshow(data, cmap='autumn')
plt.title("Heatmap with different color")
plt.show()
Вывод:
Добавление цветовой панели к тепловой карте с помощью Matplotlib
мы можем добавить цветовую шкалу к тепловой карте с помощью plt.colorbar(). Цветовая шкала показывает относительную интенсивность цвета в определённом диапазоне.
data = np.random.random((12, 12))
plt.imshow(data, cmap='autumn', interpolation='nearest')
# Add colorbar
plt.colorbar()
plt.title("Heatmap with color bar")
plt.show()
Вывод:
Настраиваемая тепловая карта с использованием библиотеки Matplotlib
мы можем настроить эту тепловую карту, используя различные функции и параметры, чтобы сделать ее более информативной и красивой. мы будем использовать plt.annotate() для аннотирования значений в тепловой карте. Кроме того, мы будем использовать библиотеку цветов для настройки цвета тепловой карты.
import matplotlib.colors as colors
# Generate random data
data = np.random.randint(0, 100, size=(8, 8))
# Create a custom color map
# with blue and green colors
colors_list = ['#0099ff', '#33cc33']
cmap = colors.ListedColormap(colors_list)
# Plot the heatmap with custom colors and annotations
plt.imshow(data, cmap=cmap, vmin=0,\
vmax=100, extent=[0, 8, 0, 8])
for i in range(8):
for j in range(8):
plt.annotate(str(data[i][j]), xy=(j+0.5, i+0.5),
ha='center', va='center', color='white')
# Add colorbar
cbar = plt.colorbar(ticks=[0, 50, 100])
cbar.ax.set_yticklabels(['Low', 'Medium', 'High'])
# Set plot title and axis labels
plt.title("Customized heatmap with annotations")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# Display the plot
plt.show()
Вывод:
Построение корреляционной матрицы набора данных с использованием тепловой карты
Далее мы построим тепловую карту для отображения корреляции между столбцами набора данных. Мы будем использовать корреляцию для поиска взаимосвязи между столбцами набора данных.
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import colors
df = pd.read_csv("gold_price_data.csv")
# Calculate correlation between columns
corr_matrix = df.corr()
# Create a custom color
# map with blue and green colors
colors_list = ['#FF5733', '#FFC300']
cmap = colors.ListedColormap(colors_list)
# Plot the heatmap with custom colors and annotations
plt.imshow(corr_matrix, cmap=cmap, vmin=0\
, vmax=1, extent=[0, 5, 0, 5])
for i in range(5):
for j in range(5):
plt.annotate(str(round(corr_matrix.values[i][j], 2)),\
xy=(j+0.25, i+0.7),
ha='center', va='center', color='white')
# Add colorbar
cbar = plt.colorbar(ticks=[0, 0.5, 1])
cbar.ax.set_yticklabels(['Low', 'Medium', 'High'])
# Set plot title and axis labels
plt.title("Correlation Matrix Of The Dataset")
plt.xlabel("Features")
plt.ylabel("Features")
# Set tick labels
plt.xticks(range(len(corr_matrix.columns)),\
corr_matrix.columns, rotation=90)
plt.yticks(range(len(corr_matrix.columns)),
corr_matrix.columns)
# Display the plot
plt.show()
Вывод:
Тепловая карта с использованием библиотеки Seaborn
Мы также можем использовать библиотеку Seaborn для построения тепловых карт, причём построение тепловых карт с помощью Seaborn сравнительно проще, чем с помощью библиотеки matplotlib. Чтобы построить тепловую карту с помощью Seaborn, мы будем использовать функцию sns.heatmap() из библиотеки Seaborn.
# importing the modules
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# generating 2-D 10x10 matrix of random numbers
# from 1 to 100
data = np.random.randint(low=1,
high=100,
size=(10, 10))
# plotting the heatmap
hm = sns.heatmap(data=data,
annot=True)
# displaying the plotted heatmap
plt.show()
Вывод: