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”, и мы свяжемся с вами как можно скорее.