- seaborn.heatmap#
- Как легко создавать тепловые карты в Python
- Создать базовую тепловую карту
- Добавить линии на тепловую карту
- Добавьте аннотации к тепловой карте
- Скрыть Colorbar из тепловой карты
- Изменить цветовую тему тепловой карты
- Как сделать тепловые карты с Seaborn (с примерами)
- Создайте базовую тепловую карту
- Отрегулируйте размер тепловой карты
- Изменить цвета тепловой карты
- Аннотировать тепловую карту
- Изменить цветовую полосу тепловой карты
seaborn.heatmap#
seaborn. heatmap ( data , * , vmin = None , vmax = None , cmap = None , center = None , robust = False , annot = None , fmt = ‘.2g’ , annot_kws = None , linewidths = 0 , linecolor = ‘white’ , cbar = True , cbar_kws = None , cbar_ax = None , square = False , xticklabels = ‘auto’ , yticklabels = ‘auto’ , mask = None , ax = None , ** kwargs ) #
Plot rectangular data as a color-encoded matrix.
This is an Axes-level function and will draw the heatmap into the currently-active Axes if none is provided to the ax argument. Part of this Axes space will be taken and used to plot a colormap, unless cbar is False or a separate Axes is provided to cbar_ax .
Parameters : data rectangular dataset
2D dataset that can be coerced into an ndarray. If a Pandas DataFrame is provided, the index/column information will be used to label the columns and rows.
vmin, vmax floats, optional
Values to anchor the colormap, otherwise they are inferred from the data and other keyword arguments.
cmap matplotlib colormap name or object, or list of colors, optional
The mapping from data values to color space. If not provided, the default will depend on whether center is set.
center float, optional
The value at which to center the colormap when plotting divergent data. Using this parameter will change the default cmap if none is specified.
robust bool, optional
If True and vmin or vmax are absent, the colormap range is computed with robust quantiles instead of the extreme values.
annot bool or rectangular dataset, optional
If True, write the data value in each cell. If an array-like with the same shape as data , then use this to annotate the heatmap instead of the data. Note that DataFrames will match on position, not index.
fmt str, optional
String formatting code to use when adding annotations.
annot_kws dict of key, value mappings, optional
Keyword arguments for matplotlib.axes.Axes.text() when annot is True.
linewidths float, optional
Width of the lines that will divide each cell.
linecolor color, optional
Color of the lines that will divide each cell.
cbar bool, optional
Whether to draw a colorbar.
cbar_kws dict of key, value mappings, optional
cbar_ax matplotlib Axes, optional
Axes in which to draw the colorbar, otherwise take space from the main Axes.
square bool, optional
If True, set the Axes aspect to “equal” so each cell will be square-shaped.
xticklabels, yticklabels “auto”, bool, list-like, or int, optional
If True, plot the column names of the dataframe. If False, don’t plot the column names. If list-like, plot these alternate labels as the xticklabels. If an integer, use the column names but plot only every n label. If “auto”, try to densely plot non-overlapping labels.
mask bool array or DataFrame, optional
If passed, data will not be shown in cells where mask is True. Cells with missing values are automatically masked.
ax matplotlib Axes, optional
Axes in which to draw the plot, otherwise use the currently-active Axes.
kwargs other keyword arguments
All other keyword arguments are passed to matplotlib.axes.Axes.pcolormesh() .
Returns : ax matplotlib Axes
Axes object with the heatmap.
Plot a matrix using hierarchical clustering to arrange the rows and columns.
Pass a DataFrame to plot with indices as row/column labels:
glue = sns.load_dataset("glue").pivot("Model", "Task", "Score") sns.heatmap(glue)
/var/folders/qk/cdrdfhfn5g554pnb30pp4ylr0000gn/T/ipykernel_77613/2862412127.py:1: FutureWarning: In a future version of pandas all arguments of DataFrame.pivot will be keyword-only. glue = sns.load_dataset("glue").pivot("Model", "Task", "Score")
Use annot to represent the cell values with text:
Control the annotations with a formatting string:
sns.heatmap(glue, annot=True, fmt=".1f")
Use a separate dataframe for the annotations:
sns.heatmap(glue, annot=glue.rank(axis="columns"))
sns.heatmap(glue, annot=True, linewidth=.5)
Select a different colormap by name:
Or pass a colormap object:
sns.heatmap(glue, cmap=sns.cubehelix_palette(as_cmap=True))
Set the colormap norm (data values corresponding to minimum and maximum points):
sns.heatmap(glue, vmin=50, vmax=100)
Use methods on the matplotlib.axes.Axes object to tweak the plot:
ax = sns.heatmap(glue, annot=True) ax.set(xlabel="", ylabel="") ax.xaxis.tick_top()
Как легко создавать тепловые карты в Python
Предположим, у нас есть следующий набор данных на Python, который отображает количество продаж, совершаемых определенным магазином в каждый будний день в течение пяти недель:
import numpy as np import pandas as pd import seaborn as sns #create a dataset np.random.seed(0) data = df = pd.DataFrame(data,columns=['day','week','sales']) df = df.pivot('day', 'week', 'sales') view first ten rows of dataset df[:10] week 1 2 3 4 5 day Fri 3 36 12 46 13 Mon 44 39 23 1 24 Thur 3 21 24 23 25 Tue 47 9 6 38 17 Wed 0 19 24 39 37
Создать базовую тепловую карту
Мы можем создать базовую тепловую карту, используя функцию s ns.heatmap() :
Цветовая полоса справа отображает легенду о том, какие значения представляют различные цвета.
Добавить линии на тепловую карту
Вы можете добавить линии между квадратами на тепловой карте, используя аргумент ширины линии :
Добавьте аннотации к тепловой карте
Вы также можете добавить аннотации к тепловой карте, используя аргумент annot=True :
sns.heatmap(df, linewidths=.5, annot=True)
Скрыть Colorbar из тепловой карты
Вы также можете полностью скрыть цветовую полосу, используя параметр cbar=False :
sns.heatmap(df, linewidths=.5, annot=True, cbar=False)
Изменить цветовую тему тепловой карты
Вы также можете изменить цветовую тему, используя аргумент cmap.Например, вы можете установить цвета в диапазоне от желтого до зеленого и синего:
Или вы можете иметь диапазон цветов от красного до синего:
Как сделать тепловые карты с Seaborn (с примерами)
Тепловая карта — это тип диаграммы, в которой для представления значений данных используются разные оттенки цветов.
В этом руководстве объясняется, как создавать тепловые карты с помощью библиотеки визуализации Python Seaborn со следующим набором данных:
#import seaborn import seaborn as sns #load "flights" dataset data = sns.load_dataset("flights") data = data.pivot(" month", " year", " passengers ") #view first five rows of dataset data.head()
Создайте базовую тепловую карту
Мы можем использовать следующий синтаксис для создания базовой тепловой карты для этого набора данных:
По оси X отображается год, по оси Y — месяц, а цвет квадратов на тепловой карте представляет количество полетов в этих конкретных комбинациях год-месяц.
Отрегулируйте размер тепловой карты
Мы можем использовать аргумент figsize для настройки общего размера тепловой карты:
#set heatmap size import matplotlib.pyplot as plt plt.figure(figsize = (12,8)) #create heatmap sns.heatmap(data)
Изменить цвета тепловой карты
Мы можем использовать аргумент cmap , чтобы изменить цвета, используемые в тепловой карте. Например, мы могли бы выбрать цветовую карту «Спектральная»:
sns.heatmap(data, cmap=" Spectral ")
Или мы могли бы выбрать «холодную» цветовую карту:
sns.heatmap(data, cmap=" coolwarm ")
Полный список опций cmap доступен здесь .
Аннотировать тепловую карту
Мы можем использовать следующий синтаксис, чтобы аннотировать каждую ячейку в тепловой карте с целочисленным форматированием и указать размер шрифта:
sns.heatmap(data, annot= True , fmt=" d", annot_kws=)
Изменить цветовую полосу тепловой карты
Наконец, мы можем отключить цветовую полосу, если хотим использовать аргумент cbar :
sns.heatmap(data, cbar= False )
Найдите больше руководств Seaborn на этой странице .