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

Содержание

  • Начало работы с Seaborn
  • Установка Seaborn для визуализации данных
  • Создание базовых графиков с помощью Seaborn
  • Настройка графиков Seaborn с помощью Python
  • Визуализация попарных связей с помощью Seaborn: парные графики
  • Совместные дистрибутивы с Seaborn: совместные графики
  • Создание многоплоскостных сеток с помощью FacetGrid от Seaborn
  • Иллюстрирование регрессионных зависимостей с помощью Seaborn

Начало работы с Seaborn

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

Он построен на основе библиотеки matplotlib и тесно интегрирован в структуры данных из pandas.

Ключевые особенности Seaborn:

  • Высокоуровневый интерфейс: упрощает создание сложных визуализаций.
  • Интеграция с Pandas: работает без сбоев с фреймами данных Pandas для обработки данных.
  • Встроенные темы: предлагают привлекательные темы по умолчанию и цветовые палитры.
  • Статистические графики: предоставляют различные типы графиков для визуализации статистических взаимосвязей и распределений.

Установка Seaborn для визуализации данных

Перед использованием Seaborn вам нужно будет его установить. Самый простой способ установить Seaborn — использовать pip, менеджер пакетов Python для среды Python:

pip install seaborn
seaborn

Установка Seaborn

Для получения дополнительной информации, пожалуйста, перейдите по ссылкам ниже:

  • Как установить Seaborn в Windows?
  • Как установить Seaborn в Pycharm?
  • Как установить Seaborn в Linux?

Создание базовых графиков с помощью Seaborn

Прежде чем начать, давайте вкратце рассмотрим двумерные и одномерные данные:

  • Двумерные данныеЭтот тип данных включает в себя две разные переменные. Анализ этого типа данных связан с причинами и взаимосвязями, и анализ проводится для выявления взаимосвязи между двумя переменными.
  • Одномерные данныеЭтот тип данных состоит из только одной переменной. Таким образом, анализ одномерных данных является простейшей формой анализа, поскольку информация касается только одной изменяющейся величины. Он не рассматривает причины или взаимосвязи, и основная цель анализа — описать данные и выявить существующие в них закономерности.

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

1. Линейный график

Линейный график — это самый популярный способ отображения зависимости между x и y с возможностью нескольких семантических группировок. Он часто используется для отслеживания изменений в течение интервалов.

Синтаксис: 

sns.lineplot(x=None, y=None)

Параметры:

x, y: Входные переменные данных; должны быть числовыми. Можно передавать данные напрямую или ссылаться на столбцы в данных.

Давайте визуализируем данные с помощью линейного графика и панд:

import pandas as pd
import seaborn as sns
 
# initialise data of lists
data = {'Name':[ 'Mohe' , 'Karnal' , 'Yrik' , 'jack' ],
        'Age':[ 30 , 21 , 29 , 28 ]}
df = pd.DataFrame( data )

# plotting lineplot
sns.lineplot( data['Age'], data['Weight'])

Вывод:

2. Точечная диаграмма

Точечные диаграммы используются для визуализации взаимосвязи между двумя числовыми переменными. Они помогают выявить корреляции или закономерности. С их помощью можно построить двумерный график.

Синтаксис: 

seaborn.scatterplot(x=None, y=None)

Параметры:
x, y: переменные входных данных, которые должны быть числовыми.

Возвращает: этот метод возвращает объект Axes с нанесённым на него графиком.

Давайте визуализируем данные с помощью точечной диаграммы и панд:

import pandas as pd
import seaborn as sns
 
# initialise data of lists
data = {'Name':[ 'Mohe' , 'Karnal' , 'Yrik' , 'jack' ],
        'Age':[ 30 , 21 , 29 , 28 ]}
df = pd.DataFrame( data )

seaborn.scatterplot(data['Age'],data['Weight'])

Вывод:

3. Прямоугольная диаграмма

Прямоугольная диаграмма (или график "прямоугольник и усы") - это визуальное представление групп числовых данных через их квартили на основе непрерывных / категориальных данных.

Прямоугольная диаграмма состоит из 5 элементов.

  • Минимальный
  • Первый квартиль или 25%
  • Медиана (Второй квартиль) или 50%
  • Третий квартиль или 75%
  • Максимум

Синтаксис: 

seaborn.boxplot(x=None, y=None, hue=None, data=None)

Параметры: 

  • x, y, оттенок: Входные данные для построения графика с длинными рядами данных.
  • data: Набор данных для построения графика. Если x и y отсутствуют, это интерпретируется как широкоформатный режим.

Возвращает: Возвращает объект Axes с нанесённым на него графиком.

Давайте создадим прямоугольную диаграмму с помощью seaborn на примере.

import pandas as pd
import seaborn as sns
 
# initialise data of lists
data = {'Name':[ 'Mohe' , 'Karnal' , 'Yrik' , 'jack' ],
        'Age':[ 30 , 21 , 29 , 28 ]}
df = pd.DataFrame( data )
sns.boxplot( data['Age'] )

Вывод:

Пример 2: Давайте посмотрим, как создать прямоугольную диаграмму с дополнительными функциями

# import module
import seaborn as sns
import pandas

# read csv and plotting
data = pandas.read_csv( "nba.csv" )
sns.boxplot( data['Age'], data['Weight'])

Вывод:

4. График скрипки

Aграфик скрипки похож на boxplot. Он показывает несколько количественных данных по одной или нескольким категориальным переменным, так что эти распределения можно сравнить.

Синтаксис:

seaborn.violinplot(x=None, y=None, hue=None, data=None)

Параметры: 

  • x, y, оттенок: Входные данные для построения графика с длинными рядами данных.
  • data:  Набор данных для построения графика.

Пример 1: Нарисуйте график скрипки с пандами

import pandas as pd
import seaborn as sns
 
# initialise data of lists
data = {'Name':[ 'Mohe' , 'Karnal' , 'Yrik' , 'jack' ],
        'Age':[ 30 , 21 , 29 , 28 ]}
df = pd.DataFrame( data )
sns.violinplot(data['Age'])

Вывод:

5. График роя

График роя похож на полосовой график, мы можем нарисовать график роя с неперекрывающимися точками на основе категориальных данных.

Синтаксис:

seaborn.swarmplot(x=None, y=None, hue=None, data=None)
 

Параметры: 

  • x, y, оттенок: Входные данные для построения графика с длинными рядами данных.
  • data: Набор данных для построения графика.
     

Пример: Нарисуйте график роя с помощью Pandas

# import module
import seaborn 

seaborn.set(style = 'whitegrid') 

# read csv and plot
data = pandas.read_csv( "nba.csv" )
seaborn.swarmplot(x = data["Age"]) 

Вывод:

6. Гистограмма

Гистограмма представляет собой оценку центральной тенденции для числовой переменной с помощью высоты каждого прямоугольника и даёт некоторое представление о неопределённости этой оценки с помощью полос ошибок.

Синтаксис:

seaborn.barplot(x=None, y=None, hue=None, data=None)

Параметры :

  • x, y : Этот параметр принимает имена переменных в данных или векторных данных, а также входные данные для построения графиков с длинными названиями.
  • hue : (необязательно) Этот параметр принимает имя столбца для цветовой кодировки.
  • data : (необязательно) Этот параметр принимает DataFrame, массив или список массивов, набор данных для построения графика. Если x и y отсутствуют, это интерпретируется как широкоформатный режим. В противном случае ожидается, что это будет длинный формат.

Возвращает : Возвращает объект Axes с нанесённым на него графиком.

Пример: Нарисуйте линейчатый график с помощью Pandas

# import module
import seaborn 

seaborn.set(style = 'whitegrid') 

# read csv and plot
data = pandas.read_csv("nba.csv")
seaborn.barplot(x ="Age", y ="Weight", data = data) 

Вывод:

7. Точечный график

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

Синтаксис:

seaborn.pointplot(x=None, y=None, hue=None, data=None)

Параметры:

  • x, y: Входные данные для построения графиков данных длинной формы.
  • hue: (необязательно) название столбца для цветовой кодировки.
  • data: dataframe как набор данных для построения графика.

Возвращает: Объект Axes с нанесенным на него графиком.

Пример: Нарисуйте точечный график с помощью Pandas

# import module
import seaborn 

seaborn.set(style = 'whitegrid') 

# read csv and plot
data = pandas.read_csv("nba.csv")
seaborn.pointplot(x = "Age", y = "Weight", data = data) 

Вывод:

8. График подсчета

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

Синтаксис:

seaborn.countplot(x=None, y=None, hue=None, data=None)

Параметры :

  • x, y: Этот параметр принимает имена переменных в data или векторных данных, необязательно, входных данных для построения данных длинной формы.
  • hue : (необязательно) Этот параметр принимает имя столбца для цветовой кодировки.
  • data : (необязательно) Этот параметр принимает фрейм данных, массив или список массивов, набор данных для построения графика. Если x и y отсутствуют, это интерпретируется как широкоформатный режим. В противном случае ожидается, что это будет длинно форматный режим.

Возвращает: возвращает объект Axes с нанесённым на него графиком.

Пример: Нарисуйте график подсчета с помощью Pandas

# import module
import seaborn 

seaborn.set(style = 'whitegrid') 

# read csv and plot
data = pandas.read_csv("nba.csv")
seaborn.countplot(data["Age"]) 

Выход:

9. Сюжет KDE

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

Синтаксис:

seaborn.kdeplot(x=None, *, y=None, vertical=False, palette=None, **kwargs)

Параметры:

x, y: векторы или ключи в данных

vertical : логическое значение (истина или ложь)

data : панды.DataFrame, numpy.ndarray, сопоставление или последовательность.

Пример: рисование графика KDE с помощью Pandas

# importing the required libraries 
from sklearn import datasets 
import pandas as pd 
import seaborn as sns 
  
# Setting up the Data Frame 
iris = datasets.load_iris() 
  
iris_df = pd.DataFrame(iris.data, columns=['Sepal_Length', 
                      'Sepal_Width', 'Patal_Length', 'Petal_Width']) 
  
iris_df['Target'] = iris.target 
  
iris_df['Target'].replace([0], 'Iris_Setosa', inplace=True) 
iris_df['Target'].replace([1], 'Iris_Vercicolor', inplace=True) 
iris_df['Target'].replace([2], 'Iris_Virginica', inplace=True) 
  
# Plotting the KDE Plot 
sns.kdeplot(iris_df.loc[(iris_df['Target'] =='Iris_Virginica'), 
            'Sepal_Length'], color = 'b', shade = True, Label ='Iris_Virginica') 
  

Вывод:

Пример 2: график KDE для функции возраста и числа

# import module
import seaborn as sns
import pandas

# read top 5 column
data = pandas.read_csv("nba.csv").head()

sns.kdeplot( data['Age'], data['Number'])

Вывод:

Двумерные и одномерные данные с использованием Seaborn

Давайте посмотрим пример Двумерных данных :

Пример 1: Использование прямоугольной диаграммы.

# import module
import seaborn as sns
import pandas

# read csv and plotting
data = pandas.read_csv( "nba.csv" )
sns.boxplot( data['Age'], data['Height'])

Вывод:

Пример 2: Высоздаете график KDE

# import module
import seaborn as sns
import pandas

# read top 5 column
data = pandas.read_csv("nba.csv").head()

sns.kdeplot( data['Age'], data['Weight'])

Вывод:

Давайте посмотрим пример одномерного распределения данных

Пример 1: Использование графика dist

# import module
import seaborn as sns
import pandas

# read top 5 column
data = pandas.read_csv("nba.csv").head()

sns.distplot( data['Age'])

Вывод:

Настройка графиков Seaborn с помощью Python

Графики Seaborn можно широко настраивать для улучшения их удобочитаемости и эстетичности.

1. Изменение стиля и темы графика

Seaborn предлагает несколько встроенных тем, которые можно использовать для изменения общего вида графиков. Эти темы включают darkgridwhitegriddarkwhite, и ticks.

import seaborn as sns
import matplotlib.pyplot as plt

# Set the style of the plots
sns.set_style("whitegrid")

# Example plot with the selected style
sns.boxplot(x='species', y='petal_length', data=sns.load_dataset('iris'))
plt.title('Petal Length Distribution by Species')
plt.show()

Вывод:

настройка

Изменение стиля и темы графика

2. Настройка цветовых палитр

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

# Set a custom color palette
custom_palette = sns.color_palette("husl", 8)

# Apply the custom palette
sns.set_palette(custom_palette)

# Example plot with the custom palette
sns.violinplot(x='species', y='petal_length', data=sns.load_dataset('iris'))
plt.title('Petal Length Distribution by Species')
plt.show()

Вывод:

настройка

Настройка цветовых палитр

3. Добавление заголовков и меток осей

Добавление описательных заголовков и меток к вашим графикам может сделать их более информативными.

# Adding title and labels
sns.scatterplot(x='sepal_length', y='sepal_width', data=sns.load_dataset('iris'))
plt.title('Sepal Length vs Sepal Width')
plt.xlabel('Sepal Length (cm)')
plt.ylabel('Sepal Width (cm)')
plt.show()

Вывод:

настройка

Добавление заголовков и меток осей

4. Настройка размера рисунка и соотношения сторон

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

# Adjust figure size
plt.figure(figsize=(10, 6))

# Example plot with adjusted figure size
sns.lineplot(x='year', y='passengers', data=sns.load_dataset('flights'))
plt.title('Number of Passengers Over Time')
plt.show()

Вывод:

настройка

Настройка размера рисунка и соотношения сторон

5. Добавление маркеров к линейным графикам

На линейные графики можно добавлять маркеры для выделения точек данных.

# Adding markers to a line plot
sns.lineplot(x='year', y='passengers', data=sns.load_dataset('flights'), marker='o')
plt.title('Number of Passengers Over Time')
plt.show()

Вывод:

настройка

Добавление маркеров к линейным графикам

Визуализация попарных связей с помощью Seaborn: парные графики

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

Синтаксис: 

sns.pairplot(data, hue=None)

Пример:

import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset("iris")
sns.pairplot(data, hue="species")
plt.show()

Вывод:

парная диаграмма

Парный график

Функция pairplot автоматически генерирует сетку точечных диаграмм, показывающих взаимосвязи между каждой парой признаков. Параметр hue добавляет цветовую кодировку на основе категориальных переменных, таких как виды в наборе данных Iris.

Совместные дистрибутивы с Seaborn: совместные графики

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

Синтаксис: 

sns.jointplot(x, y, data, kind='scatter')

Пример:

import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset("tips")
sns.jointplot(x="total_bill", y="tip", data=data, kind="scatter")
plt.show()

Вывод:

совместная схема

Совместный сюжет

Это создает точечную диаграмму между total_bill и tip с гистограммами отдельных распределений по краям. Параметр kind можно установить на 'kde' для оценки плотности ядра или 'reg' для регрессионных диаграмм.

Понимание построения сетки с помощью Seaborn

Сетка в Seaborn — это эффективный способ визуализации данных по нескольким измерениям.

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

Построение сетки, в частности, с использованием Seaborn's FacetGrid представляет собой многоплановую сетку, которая позволяет отображать функцию (например, график) на сетку вспомогательных графиков.

Создание многоплоскостных сеток с помощью FacetGrid от Seaborn

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

Пример: Чтобы использовать FacetGrid, вам сначала нужно инициализировать его с помощью набора данных и указать переменные, которые будут формировать размеры строки, столбца или оттенка сетки. Вот пример использования tips dataset:

import seaborn as sns
import matplotlib.pyplot as plt

# Load the example dataset
tips = sns.load_dataset("tips")

# Initialize the FacetGrid object
g = sns.FacetGrid(tips, col="time", row="sex")

Вывод:

Сеточная диаграмма

Многоплановые сетки с помощью FacetGrid от Seaborn

Иллюстрирование регрессионных зависимостей с помощью Seaborn

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

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

Seaborn поддерживает две основные функции для визуализации регрессии:

  • regplot(): Эта функция строит точечный график вместе с соответствием модели линейной регрессии.
  • lmplot()Эта функция также строит графики линейных моделей, но обеспечивает большую гибкость при работе с несколькими аспектами и наборами данных.

Пример: Давайте используем простой набор данных для визуализации линейной регрессии между двумя переменными: x (независимая переменная) и y (зависимая переменная).

import seaborn as sns
import matplotlib.pyplot as plt

# Sample dataset
tips = sns.load_dataset('tips')

# Plot regression line
sns.regplot(x='total_bill', y='tip', data=tips, scatter_kws={'s':10}, line_kws={'color':'red'})
plt.show()

Вывод:

regplot

Reg Plot

Заключение

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