Рубрики
Без рубрики

Python Seaborn Tutorial | Визуализация данных с использованием Seaborn

Python Seaborn учебник по разнице между seaborn и matplotlib. Также узнайте о различных функциях и настройках, доступных в seaborn.

Автор оригинала: Wajiha.

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

Итак, давайте начнем с рассуждений о важности Питона Сиборна.

Зачем использовать Python Seaborn?

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

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

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

Одномерные и двумерные визуализации, доступные для сравнения между подмножествами данных

Наличие различных цветовых палитр для выявления различных видов узоров

Автоматически оценивает и строит линейную регрессию

Итак, если вам было интересно, зачем использовать Seaborn, когда у вас уже есть Matplotlib, вот ответ на этот вопрос.

Python Seaborn vs Matplotlib:

“Если Matplotlib “пытается сделать легкие вещи легкими, а трудные-возможными”, seaborn пытается также упростить четко определенный набор трудных вещей”, – Майкл Васком (создатель Seaborn).

На самом деле Matplotlib хорош, но Seaborn лучше. Есть в основном два недостатка Matplotlib, которые Seaborn исправляет:

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

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

Как установить Seaborn?

Чтобы установить библиотеку Python Seaborn, вы можете использовать следующие команды в зависимости от используемой платформы:

pip установить seaborn

или

или

Как только это будет установлено, просто убедитесь, что установлены пакеты и библиотеки, от которых зависит seaborn.

Установка зависимостей Python Seaborn:

Обязательными зависимостями для seaborn являются:

  • Тупица
  • СциПи
  • Matplotlib
  • Панды

Существует также одна рекомендуемая зависимость, которая:

Для установки этих библиотек можно использовать те же команды, что и для Seaborn, с соответствующими именами. После установки их можно легко импортировать. Seaborn позволяет загружать любой набор данных из GIT с помощью функции load_dataset () . Вы также можете просмотреть все доступные наборы данных с помощью функции get_dataset_names() следующим образом:

ПРИМЕР:

import seaborn as sns 
sns.get_dataset_names()

Это вернет список всех доступных наборов данных. Теперь, когда вы настроили свою среду для работы с seaborn, давайте перейдем дальше, чтобы увидеть, как использовать ее функции построения графиков в Python).

Функции построения графиков Seaborn

Визуализация Статистических Взаимосвязей:

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

relplot():

Это функция уровня фигуры, которая использует две другие функции осей для визуализации статистических взаимосвязей, которые:

Эти функции могут быть заданы с помощью параметра “вид” relplot(). В случае, если этот параметр задан, он принимает значение по умолчанию, которое является scatterplot(). Прежде чем приступить к написанию кода, обязательно импортируйте необходимые библиотеки следующим образом:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")

Обратите внимание, что атрибут стиля также настраивается и может принимать любое значение, такое как темная сетка, галочки и т. Д., Которые я рассмотрю позже в разделе “Эстетика сюжета”. Давайте теперь рассмотрим небольшой пример:

ПРИМЕР:

f = sns.load_dataset("flights")
sns.relplot(x="passengers", y="month", data=f);

ВЫХОД:

ВЫХОД:

Как вы можете видеть, точки нанесены в 2-х измерениях. Однако вы можете добавить еще одно измерение, используя семантику “оттенок”. Давайте рассмотрим пример того же самого:

ПРИМЕР:

f = sns.load_dataset("flights")
sns.relplot(x="passengers", y="month", hue="year", data=f);

Вы увидите следующий вывод:

ВЫХОД:

ВЫХОД:

Тем не менее, есть еще много настроек, которые вы можете попробовать, таких как цвета, стили, размер и т. Д. Позвольте мне просто показать, как вы можете изменить цвет в следующем примере:

ПРИМЕР:

sns.set(style="darkgrid")
f = sns.load_dataset("flights")
sns.relplot(x="passengers", y="month", hue="year",palette="ch:r=-.5,l=.75", data=f);

ВЫХОД:

ВЫХОД:

линейный график():

Эта функция позволит вам нарисовать непрерывную линию для ваших данных. Вы можете использовать эту функцию, изменив параметр ” вид ” следующим образом:

ПРИМЕР:

a=pd.DataFrame({'Day':[1,2,3,4,5,6,7],'Grocery':[30,80,45,23,51,46,76],'Clothes':[13,40,34,23,54,67,98],'Utensils':[12,32,27,56,87,54,34]},index=[1,2,3,4,5,6,7])
g = sns.relplot(x="Day", y="Clothes", kind="line", data=a)
g.fig.autofmt_xdate()

ВЫХОД:

ВЫХОД:

По умолчанию для линейного графика используется значение y в зависимости от x. Однако его можно изменить, если вы этого пожелаете. Есть еще много вариантов, которые вы можете опробовать в дальнейшем.

Теперь давайте посмотрим, как построить категориальные данные.

Построение графиков с категориальными данными:

Этот подход появляется, когда наша основная переменная дополнительно делится на дискретные группы (категориальные). Это может быть достигнуто с помощью функции cat plot ().

catplot():

Это функция уровня фигуры, такая как relplot(). Его можно охарактеризовать тремя семействами функций уровня осей, а именно:

Диаграммы рассеяния – К ним относятся stripplot(), swarmplot()

Графики распределения – это boxplot(), violinplot(), boxenplot()

Оценочные графики – а именно pointplot(), barplot(), countplot()

Давайте теперь возьмем несколько примеров, чтобы продемонстрировать это:

ПРИМЕР:

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks", color_codes=True)
a = sns.load_dataset("tips")
sns.catplot(x="day", y="total_bill", data=a);

ВЫХОД:

ВЫХОД:

Как вы можете видеть, в приведенном выше примере я не установил параметр “вид”. Поэтому он вернул график в качестве диаграммы рассеяния по умолчанию. Вы можете указать любую функцию уровня осей, чтобы изменить график по мере необходимости. Давайте также возьмем пример этого:

ПРИМЕР:

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks", color_codes=True)
a = sns.load_dataset("tips")
sns.catplot(x="day", y="total_bill", kind="violin", data=a);

ВЫХОД:

ВЫХОД:

В приведенных выше выходных данных показан график скрипки для набора данных tips. Теперь давайте попробуем найти, как визуализировать распределение набора данных.

Визуализация распределения набора данных:

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

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats
sns.set(color_codes=True)

Как только это будет сделано, вы можете продолжить построение одномерных и двумерных распределений.

Построение одномерных распределений:

Чтобы построить их, вы можете использовать функцию distplot() следующим образом:

ПРИМЕР:

a = np.random.normal(loc=5,size=100,scale=2)
sns.distplot(a);

ВЫХОД:

ВЫХОД:

Как вы можете видеть в приведенном выше примере, мы построили график для переменной a, значения которой генерируются функцией normal() с помощью distplot.

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

Это проявляется, когда у вас есть две случайные независимые переменные, приводящие к какому-то вероятному событию. Лучшая функция для построения графиков такого типа-jointplot(). Давайте теперь построим двумерный граф с помощью joint plot().

ПРИМЕР:

x=pd.DataFrame({'Day':[1,2,3,4,5,6,7],'Grocery':[30,80,45,23,51,46,76],'Clothes':[13,40,34,23,54,67,98],'Utensils':[12,32,27,56,87,54,34]},index=[1,2,3,4,5,6,7])
y=pd.DataFrame({'Day':[8,9,10,11,12,13,14],'Grocery':[30,80,45,23,51,46,76],'Clothes':[13,40,34,23,54,67,98],'Utensils':[12,32,27,56,87,54,34]},index=[8,9,10,11,12,13,14])
mean, cov = [0, 1], [(1, .5), (.5, 1)]
data = np.random.multivariate_normal(mean, cov, 200)
with sns.axes_style("white"):
sns.jointplot(x=x, y=y, kind="kde", color="b");

ВЫХОД:

ВЫХОД:

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

Многоплоскостные Сетки:

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

Рассмотрим следующий пример функции facetgrid() для построения этих графиков.

ПРИМЕР:

sns.set(style="darkgrid")
a = sns.load_dataset("iris")
b = sns.FacetGrid(a, col="species")
b.map(plt.hist, "sepal_length");

ВЫХОД:

ВЫХОД:

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

ПРИМЕР:

sns.set(style="ticks")
a = sns.load_dataset("flights")
b = sns.PairGrid(a)
b.map(plt.scatter);

ВЫХОД:

ВЫХОД:

Как вы можете видеть, приведенный выше результат четко сопоставляется между годом и количеством пассажиров по-разному.

Seaborn также позволяет настраивать эстетику, которая обсуждается далее.

Сюжет-Эстетика:

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

Фигура питона Сиборна-Эстетика:

Первая функция, которую я буду обсуждать, – это set(). Я уже использовал параметр “стиль” этой функции раньше. Этот параметр в основном имеет дело с темами seaborn. В настоящее время доступно пять из них, а именно темная сетка, тики, белая сетка, белая и темная.

Рассмотрим следующий пример, демонстрирующий белую тему.

ПРИМЕР:

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="white", color_codes=True)
a = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=a);

ВЫХОД:

ВЫХОД:

В приведенном выше выводе вы можете заметить, что тема изменена на белую. Вы можете изучить их дальше, используя и другие темы. Если вы заметили в предыдущем выводе, вокруг графика присутствуют оси. Однако это также можно настроить с помощью функции despite (). Посмотрите на пример ниже.

ПРИМЕР:

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="white", color_codes=True)
a = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=a);
sns.despine(offset=10, trim=True);

ВЫХОД:

ВЫХОД:

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

Цветовые палитры Python Seaborn:

Цвет – это в основном та особенность, которая подходит человеческим глазам больше, чем любая другая особенность. Seaborn позволяет вам играть с цветами, используя различные функции, такие как color_palette (), this_palette (), husl_palette () и т. Д. Взгляните на цвета, которые в настоящее время присутствуют в seaborn.

ПРИМЕР:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set()

presentcolors = sns.color_palette()
sns.palplot(presentcolors)

ВЫХОД:

ВЫХОД:

На приведенном выше изображении показаны цвета, которые присутствуют в seaborn. Я сделал это с помощью функции plplot (). Для более глубоких вариаций вы можете использовать his_palette(), hustle_palette () и т. Д.

Это подводит нас к концу урока Python Seaborn. Надеюсь, вы все ясно поняли. Убедитесь, что вы практикуетесь как можно больше .

У вас есть к нам вопрос? Пожалуйста, упомяните об этом в разделе комментариев этого блога “Python Seaborn Tutorial”, и мы свяжемся с вами как можно скорее.