Подробное практическое руководство

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

Из-за его важности по этим причинам в экосистеме науки о данных существует множество библиотек и фреймворков для визуализации данных. Одна из самых популярных - Seaborn, библиотека визуализации статистических данных для Python.

Что мне больше всего нравится в Seaborn, так это его продуманный синтаксис и простота использования. Он позволяет создавать общие графики всего с 3 функциями.

  • Relplot: используется для создания реляционных графиков.
  • Displot: используется для создания графиков распределения
  • Catplot: используется для создания категориальных графиков.

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

Примеры будут основаны на наборе данных супермаркета. Вот его обзор. Я исключил некоторые столбцы в исходной версии на Kaggle. Начнем с импорта библиотек и чтения набора данных.

import numpy as np
import pandas as pd
import seaborn as sns
sns.set(style='darkgrid')
df = pd.read_csv("/content/supermarket.csv", parse_dates=['date'])
df.head()

Набор данных содержит данные о продажах розничного бизнеса.

Relplot

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

Давайте сначала создадим диаграмму разброса столбцов "Цена за единицу" и "Итого". Мы указываем фрейм данных и имена столбцов. Параметр kind используется для выбора типа графика.

sns.relplot(data=df, x='unit_price', y='total', kind='scatter')

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

Давайте также создадим линейный график, используя функцию relplot. Мы можем построить график общей суммы продаж за день. Первый шаг - сгруппировать продажи по дате, а затем вычислить сумму.

df_sub = df[['total','date']].groupby('date').sum().reset_index()
df_sub.head()

Теперь мы можем создать линейный график.

sns.relplot(data=df_sub, x='date', y='total', kind='line',
            height=4, aspect=2)

Мы используем параметры высоты и аспекта, чтобы настроить размер графика. Параметр аспекта устанавливает соотношение ширины и высоты.

Displot

Функция displot создает графики распределения, которые дают нам обзор распределения числовых переменных. Мы можем создавать гистограммы, графики kde, графики ecdf и rugplots с помощью функции displot.

Гистограмма делит диапазон значений числовой переменной на дискретные ячейки и подсчитывает количество точек данных (то есть строк) в каждой ячейке. Создадим гистограмму общей суммы продаж.

sns.displot(data=df, x='total', hue='gender', kind='hist',
            multiple='dodge', palette='Blues', height=4, aspect=1.4)

Параметр оттенка разделяет строки на основе различных значений в данном столбце. Мы передали столбец «Пол» в параметр оттенка, чтобы увидеть распределение для мужчин и женщин отдельно.

Параметр multiple определяет, как отображаются полосы для разных категорий («уклонение» означает рядом). Параметр palette используется для выбора цветовой палитры при использовании переменной оттенка.

Одна из приятных особенностей этих функций заключается в том, что параметры в основном совпадают. Например, все они используют параметры оттенка, высоты и аспекта. Это упрощает изучение синтаксиса.

График kde создает оценку плотности ядра для данной переменной (т. Е. Столбца), поэтому мы получаем оценку распределения вероятностей. Мы можем создать график kde, установив для параметра kind значение «kde».

sns.displot(data=df, x='total', hue='gender', kind='kde',
            palette='cool', height=5, aspect=1.4)

Catplot

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

Ящичковая диаграмма показывает распределение переменной с точки зрения медианы и квартилей. Вот коробчатая диаграмма столбца цены за единицу для каждой линейки продуктов.

sns.catplot(data=df, x='prod_line', y='unit_price', kind='box',
            height=6, aspect=1.8, width=0.5)

Параметр ширины регулирует ширину ящиков.

Вот структура коробчатого графика:

Медиана - это точка посередине, когда все точки отсортированы. Q1 (первый или нижний квартиль) - это медиана нижней половины, а Q3 (третий или верхний квартиль) - это медиана верхней половины.

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

Давайте создадим ленточный график для столбцов ответвлений и итогов.

sns.catplot(data=df, x='branch', y='total', kind='strip',
            height=5, aspect=1.3)

Плотность точек дает нам общее представление о распределении. Кажется, что ветка C имеет больше точек данных в верхней области. Мы можем подтвердить нашу интуицию, проверив среднюю общую сумму по каждой ветке.

df[['branch','total']].groupby('branch').mean()
               total     
branch
--------------------                              
  A       312.354029                 
  B       319.872711                 
  C       337.099726

Среднее значение C выше, чем среднее значение для двух других ветвей.

Другой тип сюжета в функции catplot - это скрипичный сюжет. Это своего рода комбинация box plto и kde plot. Таким образом, он обеспечивает обзор распределения переменной.

Например, мы можем создать график для скрипки из столбцов, использованных для ленточного графика в предыдущем примере. Все, что нам нужно сделать, это изменить параметр вида.

sns.catplot(data=df, x='branch', y='total', kind='violin',
            height=5, aspect=1.3)

Скрипка ветви C немного толще двух других наверху.

Заключение

Функции relplot, displot и catplot можно использовать для создания 14 различных графиков, которые охватывают почти все типы визуализации, которые мы обычно используем при анализе и исследовании данных.

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

Бывают случаи, когда нам нужно использовать разные типы графиков. Однако большая часть того, что нам нужно, входит в объем этих трех функций.

Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть отзывы.