Удаление рамки в Seaborn: Как работать с рамкой
Границы Seaborn — это рамки вокруг графика, которые помогают оформить визуализацию данных. Seaborn позволяет легко настроить или удалить границы визуализации с помощью функции sns.despine()
. В этом руководстве вы узнаете, как использовать функцию despine в Seaborn для настройки и удаления границ с визуализации.
К концу этого урока вы изучите:
Как удалить границы с графика Сиборна с помощью функции
sns.despine()
Как обрезать границы визуализации данных в Seaborn
Как задать смещение для спинов графика Seaborn
Оглавление
Понимание функции Seaborn despine
Функция despine()
в библиотеке Seaborn используется для удаления определённых границ с графика Seaborn. По умолчанию функция удаляет правую и верхнюю границы графика, но вы можете пойти дальше, чтобы удалить все границы и настроить их отображение.
Давайте рассмотрим функцию despine()
из библиотеки Seaborn:
# Понимание функции despine в Seaborn
seaborn.despine(
fig=None, # Объект matplotlib.figure.Figure, к которому применяется despine
ax=None, # Объект matplotlib.axes.Axes, к которому применяется despine
top=True, # Удалить верхнюю рамку (линию)
right=True, # Удалить правую рамку (линию)
left=False, # Удалить левую рамку (линию)
bottom=False, # Удалить нижнюю рамку (линию)
offset=None, # Смещение рамки от осей (значение или словарь)
trim=False # Обрезать оси до пределов данных
)
Давайте разберем важные параметры:
fig=
иax=
обозначают фигуру и оси соответственно. Если имеется только одна фигура и один объект осей, они подразумеваются.top=
,right=
,left=
, иright=
указывают, какие границы удалить. Параметры принимают булевые аргументы. По умолчанию верхняя и правая границы удаляютсяoffset=
настраивает значение, на которое оси отодвигаются от данных.trim=
определяет, должны ли границы осей ограничиваться наименьшей и наибольшей главной меткой на каждой неискривленной оси.
Давайте посмотрим, как мы можем использовать функцию для удаления рамок (spines) с графика
Для удаления границ (spines) из графика Seaborn с помощью функции sns.despine()
, мы можем контролировать каждую из четырех границ. Давайте сначала загрузим пример графика, чтобы увидеть, как мы можем настроить график. Запустим код ниже, чтобы создать нашу примерную визуализацию.
# График Seaborn с рамками по умолчанию
import seaborn as sns # Импорт библиотеки seaborn для визуализации данных
import matplotlib.pyplot as plt # Импорт библиотеки matplotlib для построения графиков
df = sns.load_dataset('tips') # Загрузка набора данных 'tips'
sns.scatterplot(data=df, x='total_bill', y='tip', hue='day') # Создание точечного графика (scatterplot) с использованием столбцов 'total_bill' и 'tip' для осей x и y соответственно, и цветовым кодированием по столбцу 'day'
plt.show() # Отображение графика
Эта команда возвращает следующее:

В следующем разделе вы узнаете, как удалить границы (спайнс) из графика Seaborn.
Как удалить стандартные шипы из сюжета Seaborn
По умолчанию функция despine
из библиотеки Seaborn удаляет правую и верхнюю границы из визуализации данных. Это означает, что нам просто нужно вызвать эту функцию, чтобы удалить правый и верхний контуры. Давайте посмотрим, как это выглядит на Python:
# График Seaborn с удаленными рамками
import seaborn as sns # Импорт библиотеки seaborn для визуализации данных
import matplotlib.pyplot as plt # Импорт библиотеки matplotlib для построения графиков
df = sns.load_dataset('tips') # Загрузка набора данных 'tips'
sns.scatterplot(data=df, x='total_bill', y='tip', hue='day') # Создание точечного графика (scatterplot) с использованием столбцов 'total_bill' и 'tip' для осей x и y соответственно, и цветовым кодированием по столбцу 'day'
sns.despine() # Удаление верхней и правой рамок графика
plt.show() # Отображение графика
Просто вызвав функцию sns.despine()
, мы смогли удалить правую и верхнюю рамки, как показано ниже:

В следующем разделе вы узнаете, как также удалить ось x из графика в Seaborn
Как удалить ось X из графика Seaborn
В некоторых случаях, например, при работе с категориальными данными, может быть полезно убрать ось X. Это сделает вашу визуализацию более аккуратной. Для этого нужно передать bottom=False
в функцию sns.despine()
# График Seaborn с удаленной только нижней рамкой
import seaborn as sns # Импорт библиотеки seaborn для визуализации данных
import matplotlib.pyplot as plt # Импорт библиотеки matplotlib для построения графиков
df = sns.load_dataset('tips') # Загрузка набора данных 'tips'
ax = sns.violinplot(data=df, x='day', y='tip') # Создание скрипичного графика (violinplot) с использованием столбцов 'day' и 'tip' для осей x и y соответственно, и сохранение объекта Axes в переменную ax
sns.despine(bottom=True) # Удаление только нижней рамки графика
ax.tick_params(bottom=False) # Удаление меток (ticks) с нижней оси
plt.show() # Отображение графика
При вызове функции возвращается следующая визуализация. Обратите внимание, что мы также вызвали метод ax.tick_params()
, чтобы удалить нижние отметки.

Мы видим, что это делает визуализацию немного чище. В следующем разделе вы узнаете, как расширить это дальше, чтобы убрать все границы с графика Seaborn.
Как убрать все границы с участка Seaborn
Чтобы убрать все границы на графике Seaborn, можно передать аргументы left=True
и bottom=True
в функцию despine
. Поскольку правые и верхние границы удаляются по умолчанию при использовании функции despine
, их указывать не нужно.
# График Seaborn с удаленными всеми рамками
import seaborn as sns # Импорт библиотеки seaborn для визуализации данных
import matplotlib.pyplot as plt # Импорт библиотеки matplotlib для построения графиков
df = sns.load_dataset('tips') # Загрузка набора данных 'tips'
sns.scatterplot(data=df, x='total_bill', y='tip', hue='day') # Создание точечного графика (scatterplot) с использованием столбцов 'total_bill' и 'tip' для осей x и y соответственно, и цветовым кодированием по столбцу 'day'
sns.despine(left=True, bottom=True) # Удаление левой и нижней рамок графика
plt.show() # Отображение графика
Используя приведённый выше код, мы видим, что все границы удалены, и получена следующая визуализация:

В следующем разделе вы узнаете, как дополнительно настроить оси, обрезая их.
Как обрезать колючки на участке Seaborn
Seaborn также позволяет обрезать оси графика. Это означает, что значения отображаются только от первой точки данных до последней, но не выходят за их пределы. Чтобы сделать это, мы можем передать trim=True
в функцию sns.despine()
. Давайте посмотрим, как это выглядит:
# График Seaborn с удаленными и обрезанными рамками
import seaborn as sns # Импорт библиотеки seaborn для визуализации данных
import matplotlib.pyplot as plt # Импорт библиотеки matplotlib для построения графиков
df = sns.load_dataset('tips') # Загрузка набора данных 'tips'
sns.scatterplot(data=df, x='total_bill', y='tip', hue='day') # Создание точечного графика (scatterplot) с использованием столбцов 'total_bill' и 'tip' для осей x и y соответственно, и цветовым кодированием по столбцу 'day'
sns.despine(trim=True) # Удаление рамок и обрезка осей до пределов данных
plt.show() # Отображение графика
Выполнив код из блока выше, мы обрезаем границы визуализации в Seaborn. В этом случае граница проходит от 2 до 10 на оси y и от 10 до 50 на оси x.

despine
в SeabornВ последнем разделе ниже вы узнаете, как сместить границу графика Seaborn.
Как сместить границу участка Seaborn
Seaborn также позволяет смещать оси графика, что может быть очень полезно для научных визуализаций. Это позволяет сохранить оси, но отодвинуть их дальше от данных. Для этого можно использовать параметр offset=
, который принимает в качестве значения целое число.
# График Seaborn со смещением рамок
import seaborn as sns # Импорт библиотеки seaborn для визуализации данных
import matplotlib.pyplot as plt # Импорт библиотеки matplotlib для построения графиков
df = sns.load_dataset('tips') # Загрузка набора данных 'tips'
sns.scatterplot(data=df, x='total_bill', y='tip', hue='day') # Создание точечного графика (scatterplot) с использованием столбцов 'total_bill' и 'tip' для осей x и y соответственно, и цветовым кодированием по столбцу 'day'
sns.despine(offset=100) # Удаление рамок и смещение осей на 100 единиц
plt.show() # Отображение графика
В кодовом блоке выше мы передали значение 100 в параметр offset. Это перемещает оси на 100 пунктов. В этом случае мы переместили все оставшиеся оси. Если вы хотите сместить только одну ось, вы можете передать словарь смещений.

В приведенном выше примере мы сместили наши оси на 100 пунктов.
Заключение
В этом уроке вы научились использовать функцию Seaborn despine()
, чтобы удалять рамки из графика Seaborn. Это позволяет удалить границы графика. Сначала вы узнали, как определяется функция despine и какие у неё параметры.
Вы узнали, как удалять границы с помощью функции despine
. По умолчанию функция удаляет верхние и правые границы. Вы узнали, как удалять дополнительные границы, передавая дополнительные аргументы. Затем вы узнали, как использовать функцию для обрезки границ графика. В конце вы изучили, как смещать границы на графике Seaborn.
Дополнительные ресурсы
Чтобы узнать больше по связанным темам, ознакомьтесь с руководствами ниже:
Как установить Seaborn в Python (Исправление: нет модуля с именем seaborn)
Названия и метки осей Seaborn: добавление и настройка
Настройте местоположение, метки, текст и т. д. Seaborn Legends.
Last updated