Удаление рамки в 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()  # Отображение графика

Эта команда возвращает следующее:

A Seaborn Plot with Default Spines
Сюжет Seaborn с дефолтными шипами

В следующем разделе вы узнаете, как удалить границы (спайнс) из графика 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(), мы смогли удалить правую и верхнюю рамки, как показано ниже:

A Seaborn Plot with Default Spines Removed Using despine
График Seaborn с удаленными стандартными границами

В следующем разделе вы узнаете, как также удалить ось 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(), чтобы удалить нижние отметки.

An Example of When To Remove the Bottom Spine in Seaborn
Пример, когда следует удалить нижнюю ось в Seaborn

Мы видим, что это делает визуализацию немного чище. В следующем разделе вы узнаете, как расширить это дальше, чтобы убрать все границы с графика 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()  # Отображение графика

Используя приведённый выше код, мы видим, что все границы удалены, и получена следующая визуализация:

How to Remove All Spines Using Seaborn Despine
Как удалить все границы графика с помощью Seaborn Despine

В следующем разделе вы узнаете, как дополнительно настроить оси, обрезая их.

Как обрезать колючки на участке 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.

Trimming An Axis with Seaborn Despine
Обрезка оси с использованием функции 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 пунктов. В этом случае мы переместили все оставшиеся оси. Если вы хотите сместить только одну ось, вы можете передать словарь смещений.

Using Offset with Despine in Seaborn to Modify an Axis
Использование Offset с Despine в Seaborn для изменения оси

В приведенном выше примере мы сместили наши оси на 100 пунктов.

Заключение

В этом уроке вы научились использовать функцию Seaborn despine(), чтобы удалять рамки из графика Seaborn. Это позволяет удалить границы графика. Сначала вы узнали, как определяется функция despine и какие у неё параметры.

Вы узнали, как удалять границы с помощью функции despine. По умолчанию функция удаляет верхние и правые границы. Вы узнали, как удалять дополнительные границы, передавая дополнительные аргументы. Затем вы узнали, как использовать функцию для обрезки границ графика. В конце вы изучили, как смещать границы на графике Seaborn.

Дополнительные ресурсы

Чтобы узнать больше по связанным темам, ознакомьтесь с руководствами ниже:

Last updated