Автор оригинала: David Landup.
Seaborn Bar Plot – Учебник и примеры
Вступление
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()
.
Это приводит к чистой и простой гистограмме:
Однако чаще всего вы будете работать с наборами данных, которые содержат гораздо больше данных, чем это. Иногда к этим данным применяются операции, такие как ранжирование или подсчет определенных вхождений.
Всякий раз, когда вы имеете дело со средствами данных, у вас будет некоторое заполнение ошибок, которое может возникнуть из-за этого. К счастью, Seaborn покрывает нас и применяет бары ошибок для нас автоматически, так как по умолчанию вычисляет среднее значение данных, которые мы предоставляем.
Давайте импортируем классику Titanic Dataset и визуализируйте гистограмму с данными оттуда:
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
и передаем набор данных, с которым мы работаем и из которого извлекаются объекты. Это приводит к:
Постройте горизонтальный Барный участок в Сиборне
Чтобы построить гистограмму горизонтально, а не вертикально, мы можем просто поменять местами переменные 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()
Это приводит к:
Возвращаясь к примеру с “Титаником”, это делается примерно так же:
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()
Что приводит к:
Изменение цвета гистограммы в Seaborn
Изменить цвет полос довольно просто. Аргумент color
принимает цвет Matplotlib и применяет его ко всем элементам.
Давайте изменим их на синий
:
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()
Это приводит к:
Или, еще лучше, вы можете установить аргумент palette
, который принимает большое разнообразие палитр . Довольно распространенный из них-это его
:
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()
Это приводит к:
Участок Сгруппированный Барный участок в Сиборне
Группировка баров на графиках-обычная операция. Предположим, вы хотите сравнить некоторые общие данные, например, выживаемость пассажиров, но хотели бы сгруппировать их по некоторым критериям.
Мы могли бы визуализировать отношения выживших пассажиров, разделенных на классы (первый, второй и третий), но также учитывать, из какого города они отправились.
Это довольно много информации в сюжете, и все это можно легко поместить в простой БарПлот.
Чтобы сгруппировать бары вместе, мы используем аргумент hue
. Технически, как следует из названия, аргумент hue
говорит Сиборну, как раскрасить полосы, но в процессе раскрашивания он группирует вместе соответствующие данные.
Давайте рассмотрим пример, который мы только что обсудили:
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()
Это приводит к:
Теперь полосы ошибок в данных Queenstown довольно велики. Это указывает на то, что данные о пассажирах, которые выжили и отправились из Квинстауна сильно различаются для первого и второго класса.
Заказ сгруппированных баров на барной площадке с 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()
Запуск этого кода приводит к:
Изменение доверительного интервала на графике бара 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()
Теперь это удаляет наши полосы ошибок из предыдущих:
Или мы могли бы использовать стандартное отклонение для баров ошибок и установить размер крышки:
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()
Вывод
В этом уроке мы рассмотрели несколько способов построения барплота с использованием Seaborn и Python. Мы начали с простых графиков и горизонтальных графиков, а затем продолжили их настраивать.
Мы рассмотрели, как изменить цвета баров, сгруппировать их вместе, упорядочить и изменить доверительный интервал.
Если вы заинтересованы в визуализации данных и не знаете, с чего начать, обязательно ознакомьтесь с нашей связкой книг on :
Визуализация данных в Python с Matplotlib и Pandas – это книга, предназначенная для того, чтобы познакомить абсолютных новичков с Pandas и Matplotlib, обладающих базовыми знаниями Python, и позволить им создать прочную основу для продвинутой работы с библиотеками тезисов- от простых сюжетов до анимированных 3D-сюжетов с интерактивными кнопками.
Он служит углубленным руководством, которое научит вас всему, что вам нужно знать о пандах и Matplotlib, включая то, как создавать типы сюжетов, которые не встроены в саму библиотеку.
Визуализация данных в Python , книга для начинающих и промежуточных разработчиков Python, проведет вас через простые манипуляции с данными с Пандами, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет вам, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. Более конкретно, в течение 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.
Он служит уникальным практическим руководством по визуализации данных, в изобилии инструментов, которые вы могли бы использовать в своей карьере.