Учебное пособие по Python Seaborn | Визуализация данных с помощью Seaborn
Python — это кладезь множества чрезвычайно мощных библиотек и фреймворков. Среди них есть Сиборн, который является доминирующим визуализация данных библиотека. В этом учебном пособии по Python Seaborn вы освоите все навыки визуализации данных с помощью Seaborn.
Итак, давайте начнем с рассуждения о важности Python Seaborn.
Зачем использовать Python Seaborn?
Как упоминалось ранее, библиотека Python Seaborn используется для облегчения сложной задачи визуализации данных и основана на Matplotlib. Seaborn позволяет создавать статистические графики с помощью следующих функций:
API, основанный на наборах данных, позволяющий сравнивать несколько переменных
Поддерживает сетки с несколькими графиками, которые, в свою очередь, упрощают создание сложных визуализаций.
Доступны одномерные и двумерные визуализации для сравнения подмножеств данных.
Наличие различных цветовых палитр для выявления различных видов узоров
Автоматически оценивает и строит линейную регрессию
Итак, если вам интересно, зачем использовать Seaborn, если у вас уже есть Matplotlib, вот ответ на него.
Python Seaborn против Matplotlib:
«Если Matplotlib «пытается сделать простые вещи простыми, а сложные возможными», то seaborn также пытается сделать четко определенный набор сложных вещей простыми», — Майкл Васком (создатель Seaborn).
На самом деле, Matplotlib хорош, но Seaborn лучше. В основном есть два недостатка Matplotlib, которые исправляет Seaborn:
Matplotlib можно персонализировать, но сложно понять, какие настройки нужны, чтобы сделать графики более привлекательными. С другой стороны, Seaborn поставляется с множеством настраиваемых тем и интерфейсов высокого уровня для решения этой проблемы.
При работе с Pandas Matplotlib не очень хорошо работает с DataFrames, в то время как функции Seaborn действительно работают с DataFrames.
Как установить Сиборн?
Чтобы установить библиотеку Python Seaborn, вы можете использовать следующие команды в зависимости от используемой вами платформы:
пип установить сиборн
или же
конда установить сиборн
После установки просто убедитесь, что установлены пакеты и библиотеки, от которых зависит Seaborn.
Установка зависимостей Python Seaborn:
Обязательными зависимостями для seaborn являются:
- NumPy
- SciPy
- Матплотлиб
- Панды
Существует также одна рекомендуемая зависимость:
Чтобы установить эти библиотеки, вы можете использовать те же команды, что и ранее для Seaborn, с соответствующими именами. После установки их можно легко импортировать. Seaborn позволяет загружать любой набор данных из GIT с помощью load_dataset() функция. Вы также можете просмотреть все доступные наборы данных, используя функцию get_dataset_names() следующим образом:
ПРИМЕР:
import seaborn as sns
sns.get_dataset_names()
Это вернет список всех доступных наборов данных.
Теперь, когда вы настроили свою среду для работы с seaborn, давайте двигаться дальше, чтобы увидеть, как использовать его функции построения графиков в Python).
Функции построения графиков Seaborn
Визуализация статистических отношений:
Процесс понимания отношений между переменными набора данных и того, как эти отношения, в свою очередь, зависят от других переменных, известен как статистический анализ. Давайте теперь более подробно рассмотрим необходимые для этого функции:
перестроить():
Это функция уровня фигуры, которая использует две другие функции осей для визуализации статистических отношений, а именно:
Эти функции можно указать с помощью параметра «вид» функции relplot(). Если этот параметр задан, он принимает значение по умолчанию, то есть диаграмму рассеяния(). Прежде чем приступить к написанию кода, обязательно импортируйте необходимые библиотеки следующим образом:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")
Обратите внимание, что атрибут стиля также настраиваемый и может принимать любое значение, такое как darkgrid, ticks и т. д., которые я буду обсуждать позже в разделе, посвященном эстетике сюжета. Давайте теперь посмотрим на небольшой пример:
ПРИМЕР:
f = sns.load_dataset("flights")
sns.relplot(x="passengers", y="month", data=f);
ВЫХОД:
Как видите, точки нанесены в двух измерениях. Однако вы можете добавить еще одно измерение, используя семантику «оттенок». Давайте посмотрим на пример того же:
ПРИМЕР:
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. Однако при желании его можно изменить. Есть еще много вариантов, которые вы можете попробовать дальше.
Теперь давайте посмотрим, как отображать категориальные данные.
График с категориальными данными:
Этот подход проявляется, когда наша основная переменная далее делится на дискретные группы (категориальные). Этого можно добиться с помощью функции catplot().
кошачья диаграмма():
Это функция уровня фигуры, такая как relplot(). Его можно охарактеризовать тремя семействами функций уровня осей, а именно:
Диаграммы рассеяния — к ним относятся stripplot(), swarmplot().
Графики распределения – boxplot(), violinplot(), boxenplot()
Оценочные графики, а именно точечная диаграмма (), гистограмма (), счетная диаграмма ()
Давайте теперь возьмем несколько примеров, чтобы продемонстрировать это:
ПРИМЕР:
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);
ВЫХОД:
В приведенном выше выводе показан график скрипки для набора данных подсказок. Теперь давайте попробуем найти, как визуализировать распределение набора данных.
Визуализация распределения набора данных:
В основном это связано с пониманием наборов данных в контексте их одномерности или двумерности. Прежде чем начать с этого, просто импортируйте следующее:
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(). Давайте теперь построим двумерный график, используя JointPlot().
ПРИМЕР:
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");
ВЫХОД:
Приведенный выше вывод ясно показывает сравнение между чаевыми, которые даются во время обеда и ужина. Вы также можете построить график с помощью функции PairGrid, когда у вас есть пара переменных для сравнения. Рассмотрим следующий пример.
ПРИМЕР:
sns.set(style="ticks")
a = sns.load_dataset("flights")
b = sns.PairGrid(a)
b.map(plt.scatter);
ВЫХОД:
Как видите, приведенный выше вывод четко сравнивает год и количество пассажиров по-разному.
Seaborn также позволяет настраивать внешний вид, который обсуждается далее.
Сюжет-Эстетика:
Этот раздел учебника Python Seaborn посвящен тому, как сделать наши графики более привлекательными и восхитительными.
Эстетика фигуры Python Seaborn:
Первая функция, которую я буду обсуждать, это set(). Раньше я использовал параметр «стиль» этой функции. Этот параметр в основном касается морской тематики. В настоящее время доступно пять из них, а именно darkgrid, ticks, whitegrid, white и dark.
Рассмотрим следующий пример, демонстрирующий белую тему.
ПРИМЕР:
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);
ВЫХОД:
В приведенном выше выводе вы можете заметить, что тема изменена на белую. Вы можете исследовать их дальше, используя другие темы. Если вы заметили в предыдущем выводе, вокруг графика присутствуют оси. Однако это также можно настроить с помощью функции despine(). Посмотрите на пример ниже.
ПРИМЕР:
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(), hls_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. Я сделал это с помощью функции palplot(). Для более глубоких вариаций вы можете использовать hls_palette(), husl_palette() и т. д.
Это подводит нас к концу учебника по Python Seaborn. Надеюсь, вы все ясно поняли. Убедитесь, что вы тренируетесь как можно больше.
Есть к нам вопрос? Пожалуйста, укажите это в разделе комментариев этого блога «Python Seaborn Tutorial», и мы свяжемся с вами как можно скорее.