Вступление
Seaborn - одна из наиболее широко используемых библиотек визуализации данных в Python как расширение Matplotlib . Он предлагает простой, интуитивно понятный, но настраиваемый API для визуализации данных.
В этом уроке мы рассмотрим, как построить гистограмму в Seaborn .
Гистограммы отображают числовые величины на одной оси и категориальные переменные - на другой, что позволяет увидеть, сколько вхождений существует для разных категорий.
Гистограммы можно использовать для визуализации временных рядов, а также только категориальных данных.
Земельный участок под бар в Сиборне
Построить гистограмму в Seaborn так же просто, как вызвать barplot()
в
sns
и передать категориальные и непрерывные переменные, которые мы
хотели бы визуализировать:
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('darkgrid')
x = ['A', 'B', 'C']
y = [1, 5, 3]
sns.barplot(x, y)
plt.show()
Здесь у нас есть несколько категориальных переменных в списке - A
,
B
и C
У нас также есть пара непрерывных переменных в другом списке -
1
, 5
и 3
. Затем связь между ними визуализируется на гистограмме
путем передачи этих двух списков в sns.barplot()
.
В результате получается четкая и простая гистограмма:
{.ezlazyload}
Хотя чаще всего вы будете работать с наборами данных, которые содержат гораздо больше данных, чем этот. Иногда к этим данным применяются операции, такие как ранжирование или подсчет определенных случаев.
Всякий раз, когда вы имеете дело со средствами данных, у вас могут возникнуть некоторые ошибки, которые могут возникнуть из-за этого. К счастью, Seaborn покрывает нас и автоматически применяет планки ошибок , поскольку по умолчанию вычисляет среднее значение предоставленных нами данных.
Давайте импортируем классический набор данных Titanic и визуализируем гистограмму с данными оттуда:
import matplotlib.pyplot as plt
import seaborn as sns
# Set Seaborn style
sns.set_style('darkgrid')
# Import Data
titanic_dataset = sns.load_dataset("titanic")
# Construct plot
sns.barplot(x = "sex", y = "survived", data = titanic_dataset)
plt.show()
На этот раз мы назначили x
и y
sex
и survived
столбцам набора
данных вместо жестко заданных списков.
Если мы напечатаем заголовок набора данных:
print(titanic_dataset.head())
Нас встречают:
survived pclass sex age sibsp parch fare ...
0 0 3 male 22.0 1 0 7.2500 ...
1 1 1 female 38.0 1 0 71.2833 ...
2 1 3 female 26.0 0 0 7.9250 ...
3 1 1 female 35.0 1 0 53.1000 ...
4 0 3 male 35.0 0 0 8.0500 ...
[5 rows x 15 columns]
Убедитесь, что имена этих функций совпадают, когда вы назначаете
переменные x
и y
Наконец, мы используем data
и передаем набор данных, с которым мы
работаем и из которого извлекаются функции. Это приводит к:
{.ezlazyload}
Постройте график горизонтальной полосы в Сиборне
Чтобы построить гистограмму по горизонтали, а не по вертикали, мы можем
просто поменять местами переменные x
и y
Это приведет к тому, что категориальная переменная будет нанесена на ось Y, что приведет к горизонтальному графику:
import matplotlib.pyplot as plt
import seaborn as sns
x = ['A', 'B', 'C']
y = [1, 5, 3]
sns.barplot(y, x)
plt.show()
Это приводит к:
{.ezlazyload}
Возвращаясь к примеру с Титаником, это делается примерно так же:
import matplotlib.pyplot as plt
import seaborn as sns
titanic_dataset = sns.load_dataset("titanic")
sns.barplot(x = "survived", y = "class", data = titanic_dataset)
plt.show()
Что приводит к:
{.ezlazyload}
Изменить цвет диаграммы в Seaborn
Изменить цвет полосок довольно просто. color
принимает цвет Matplotlib
и применяет его ко всем элементам.
Изменим их на blue
:
import matplotlib.pyplot as plt
import seaborn as sns
x = ['A', 'B', 'C']
y = [1, 5, 3]
sns.barplot(x, y, color='blue')
plt.show()
Это приводит к:
{.ezlazyload}
Или, что еще лучше, вы можете установить palette
, который принимает
большое количество
палитр .
Довольно распространенным является hls
:
import matplotlib.pyplot as plt
import seaborn as sns
titanic_dataset = sns.load_dataset("titanic")
sns.barplot(x = "embark_town", y = "survived", palette = 'hls', data = titanic_dataset)
plt.show()
Это приводит к:
{.ezlazyload}
Участок сгруппированных баров в Сиборне
Группировка полос на графиках - обычная операция. Допустим, вы хотите сравнить некоторые общие данные, например, выживаемость пассажиров, но хотите сгруппировать их по некоторым критериям.
Мы могли бы захотеть визуализировать отношения выживших пассажиров, разделенных на классы (первый, второй и третий), но также учесть, из какого города они прибыли.
Это довольно много информации в графике, и все ее можно легко поместить в простую гистограмму.
Чтобы сгруппировать полосы вместе, мы используем аргумент hue
Технически, как следует из названия, hue
сообщает Seaborn, как
раскрашивать полосы, но в процессе раскраски он группирует
соответствующие данные.
Давайте посмотрим на только что обсужденный пример:
import matplotlib.pyplot as plt
import seaborn as sns
titanic_dataset = sns.load_dataset("titanic")
sns.barplot(x = "class", y = "survived", hue = "embark_town", data = titanic_dataset)
plt.show()
Это приводит к:
{.ezlazyload}
Теперь полосы ошибок в данных Квинстауна довольно большие. Это указывает на то, что данные о пассажирах, которые выжили и высадились из Квинстауна, сильно различаются для первого и второго класса.
Заказ сгруппированных стержней на гистограмме с помощью Seaborn
Вы можете изменить порядок полосок по умолчанию (то, что, по мнению Сиборна, имеет наибольший смысл), на то, что вы хотите выделить или изучить.
Это делается с помощью order
, который принимает список значений и
порядок, в котором вы хотите их поместить.
Например, до сих пор он упорядочивал классы с первого по третий. Что, если мы захотим сделать наоборот?
import matplotlib.pyplot as plt
import seaborn as sns
titanic_dataset = sns.load_dataset("titanic")
sns.barplot(x = "class", y = "survived", hue = "embark_town", order = ["Third", "Second", "First"], data = titanic_dataset)
plt.show()
Выполнение этого кода приводит к:
{.ezlazyload}
Изменить доверительный интервал на гистограмме Seaborn
Вы также можете легко повозиться с доверительным интервалом, установив
аргумент ci
Например, вы можете отключить его, установив для него значение « None
, или использовать стандартное отклонение вместо среднего, установив
sd
, или даже установить размер верхнего предела для полос
погрешностей в эстетических целях, установив capsize
.
Давайте немного поиграем с атрибутом доверительного интервала:
import matplotlib.pyplot as plt
import seaborn as sns
titanic_dataset = sns.load_dataset("titanic")
sns.barplot(x = "class", y = "survived", hue = "embark_town", ci = None, data = titanic_dataset)
plt.show()
Теперь это удаляет наши предыдущие полосы ошибок:
{.ezlazyload}
Или мы могли бы использовать стандартное отклонение для полос ошибок и установить размер крышки:
import matplotlib.pyplot as plt
import seaborn as sns
titanic_dataset = sns.load_dataset("titanic")
sns.barplot(x = "class", y = "survived", hue = "who", ci = "sd", capsize = 0.1, data = titanic_dataset)
plt.show()
{.ezlazyload}
Заключение
В этом уроке мы рассмотрели несколько способов построения гистограммы с использованием Seaborn и Python. Мы начали с простых графиков и горизонтальных графиков, а затем продолжили их настраивать.
Мы рассмотрели, как изменить цвета полос, сгруппировать их, упорядочить и изменить доверительный интервал.
Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в Python{.ebook-link} :
::: {style=“border: 1px solid #ebebeb;padding: 15px;”} {.ebook-link}
Визуализация данных в Python
::: {.row} ::: {.col-md-4 .col-xs-12} {.ezlazyload .img-responsive .center-block} :::
::: {.col-md-8 .col-xs-12 .my-auto} Станьте опасными с визуализацией данных
✅ 30-дневная гарантия возврата денег без вопросов
✅ от начального до продвинутого
✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 г.)
✅ Обновлено с бонусными ресурсами и руководствами ::: ::: :::
Визуализация данных в Python с помощью Matplotlib и Pandas - это книга, предназначенная для абсолютных новичков в работе с Pandas и Matplotlib с базовыми знаниями Python и позволяющая им создать прочную основу для расширенной работы с этими библиотеками - от простых графиков до анимированных трехмерных графиков с интерактивными кнопки.
Он служит подробным руководством, которое научит вас всему, что вам нужно знать о Pandas и Matplotlib, в том числе о том, как создавать типы графиков, которые не встроены в саму библиотеку.
Книга «Визуализация данных в Python» , книга для начинающих и средних разработчиков Python, проведет вас через простые манипуляции с данными с помощью Pandas, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. В частности, на протяжении 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.
Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.