Визуализация данных преобразует сложную информацию в ясные, практичные инсайты. Гистограммы Seaborn отлично подходят для представления категориальных данных с помощью элегантной статистической графики. Библиотека сочетает в себе гибкость Matplotlib и мощь pandas, что делает её идеальной как для быстрых анализов, так и для визуализаций, готовых к публикации.
Гистограммы Seaborn предлагают основные функции для анализа данных – от базовых сравнений до продвинутых статистических представлений. Они справляются с общими задачами, такими как сравнение показателей продаж по регионам, анализ ответов на опросы и визуализация результатов экспериментов.
Интуитивный синтаксис библиотеки и встроенные статистические функции делают её ценным инструментом как для новичков, так и для опытных специалистов по данным.
В этой статье мы рассмотрим основы гистограммы Seaborn, создание базовых графиков с примерами кода, улучшение графиков с помощью настройки, реализацию продвинутых функций и изучение практических приложений.
Чтобы узнать больше о визуализации данных с помощью Seaborn, ознакомьтесь с нашим Введением в визуализацию данных с Seaborn курсом.
Основы столбчатых диаграмм Seaborn
Прежде чем перейти к столбчатым диаграммам, давайте рассмотрим некоторые основы Seaborn, его преимущества для столбчатых диаграмм и как настроить среду программирования.
Что такое Seaborn?
Seaborn — это библиотека визуализации статистических данных на языке Python, построенная на основе Matplotlib. Она специализируется на создании информативной и привлекательной статистической графики с минимальным количеством кода. Библиотека тесно интегрируется с DataFrame библиотеки pandas, что делает ее особенно эффективной для рабочих процессов анализа данных.
Она предоставляет высокоуровневый интерфейс для создания привлекательных графиков, автоматически обрабатывая множество деталей оформления.
Библиотека выделяется тремя ключевыми аспектами:
- Она бесшовно интегрируется с DataFrame библиотеки pandas, что упрощает манипуляцию данными
- Он поставляется с встроенными статистическими функциями, что устраняет необходимость в отдельных расчетах
- По умолчанию он применяет профессиональные темы и цветовые палитры
Например, в то время как Matplotlib требует нескольких строк кода для создания базовой статистической визуализации, Seaborn может выполнить ту же задачу с помощью одного вызова функции.
Для столбчатых диаграмм в частности, Seaborn добавляет мощные функции, такие как автоматический расчет среднего, доверительные интервалы и расширенная обработка категориальных переменных – возможности, которые потребовали бы значительного дополнительного кода в обычном Matplotlib.
Почему использовать столбчатые диаграммы?
Столбиковые диаграммы представляют категориальные данные с помощью вертикальных или горизонтальных полос, где длина представляет собой числовое значение. Это делает их идеальными для сравнения значений между различными группами или категориями. В анализе данных столбиковые диаграммы помогают визуализировать результаты опросов, доли рынка, показатели производительности и распределение продаж.
Ключевые преимущества включают:
- Ясное сравнение количеств между категориями
- Встроенные статистические функции (среднее, медиана, доверительные интервалы)
- Эффективное представление сгруппированных данных
- Простые, но информативные визуальные элементы
- Простые варианты настройки для профессиональных презентаций
Быстрая настройка
Чтобы начать создавать столбчатые диаграммы с помощью Seaborn, нам нужно настроить нашу среду Python. Вот как начать:
Сначала установим необходимые пакеты, как показано ниже:
pip install seaborn pandas numpy
Теперь у нас есть все наши инструменты визуализации готовы к использованию. Давайте импортируем библиотеки, которые нам понадобятся, как показано ниже:
# Для создания статистических визуализаций import seaborn as sns # Для манипуляции и анализа данных import pandas as pd # Для числовых операций import numpy as np
Мы можем сделать наши диаграммы более привлекательными с помощью некоторых настроек стиля, как показано ниже:
# Чистый белый стиль sns.set_style("white")
Стиль white
убирает сетку и делает диаграммы хорошо видимыми на большинстве экранов. В следующих разделах мы рассмотрим создание столбчатых диаграмм и их улучшение.
Создание основных столбчатых диаграмм Seaborn
Гистограмма идеально подходит для визуализации взаимосвязей между категориальными и числовыми переменными. Она показывает точечные оценки (например, среднее или медиану) и неопределенность вокруг этих оценок с помощью ошибок. Давайте посмотрим на основный синтаксис функции seaborn barplot.
Синтаксис и параметры
Функция sns.barplot() в Seaborn предоставляет простой способ создания статистических гистограмм. Основная структура функции .barplot() выглядит следующим образом:
sns.barplot( data=None, # Your DataFrame x=None, # Category variable y=None, # Numeric variable estimator='mean', # Statistical function to estimate errorbar=('ci', 95), # Error bars type and level orient=None # "v" for vertical, "h" for horizontal )
Эти параметры дают нам контроль над тем, какие данные мы отображаем и как мы их отображаем. Параметр data
принимает ваш DataFrame, в то время как x и y указывают, какие столбцы использовать для категорий и значений. Параметр estimator
позволяет вам выбрать, какую статистическую функцию применять (по умолчанию – среднее), а errorbar
управляет тем, как отображается неопределенность. Вы также можете переключаться между вертикальной и горизонтальной ориентацией, используя параметр orient
.
Теперь давайте посмотрим, как создать эффективные столбчатые диаграммы, используя встроенный набор данных о чаевых из Seaborn, который содержит информацию о счетах в ресторанах и чаевых.
Пример: Визуализация простого набора данных
Мы рассмотрим поведение в отношении чаевых в разные дни недели, используя набор данных о чаевых. Этот набор данных содержит информацию о счетах в ресторанах, включая день недели, общую сумму счета, сумму чаевых и другие переменные.
# Импортируем необходимые библиотеки и загружаем набор данных import seaborn as sns tips = sns.load_dataset("tips") # Создаем базовую столбчатую диаграмму, показывающую средние чаевые по дням sns.barplot(data=tips, x="day", y="tip")
Вывод:
Наш код создал вышеуказанную визуализацию, где каждая колонка представляет собой среднюю сумму чаевых для разных дней недели. Высота каждой колонки показывает среднее значение чаевых, в то время как черные линии (ошибки) указывают на 95% доверительный интервал, что дает нам представление как о типичной сумме чаевых, так и о том, насколько она варьируется.
Мы также можем изучить шаблоны чаевых в разные времена приема пищи:
# Создаем столбчатую диаграмму, показывающую средние чаевые по времени суток sns.barplot(data=tips, x="time", y="tip")
Вывод:
Этот график показывает разницу в поведении при чаевых между обедом и ужином. Высота каждого столбца представляет собой среднюю сумму чаевых в это время суток, а ошибки показывают изменчивость поведения при чаевых. Такой тип визуализации позволяет легко выявить паттерны и сравнить группы на первый взгляд.
Эти базовые столбчатые диаграммы создают основу для более сложных визуализаций. В следующем разделе мы увидим, как улучшить эти графики с помощью цветов, группировок и других настроек, чтобы создать более информативные и визуально привлекательные визуализации.
Улучшение столбчатых диаграмм с помощью настроек
Добавление визуальных улучшений в наши столбчатые диаграммы может сделать наши данные более интересными и проще для понимания. Давайте посмотрим на разные способы настройки столбчатых диаграмм, используя набор данных о чаевых.
Добавление цветов в столбчатые диаграммы
Seaborn предлагает несколько способов добавить цвет в ваши столбчатые диаграммы, делая их более визуально привлекательными и информативными. Мы можем использовать один цвет для всех столбцов или создать цветные группы,
Параметр color
устанавливает один цвет для всех столбцов, в то время как palette
позволяет указать цветовую схему, когда ваши данные имеют несколько групп. Seaborn поставляется с множеством встроенных цветовых палитр, которые хорошо работают для разных типов данных.
Мы можем создать простой столбчатый график с одним цветом, используя параметр color
как показано ниже:
# Загрузите набор данных tips, если вы еще этого не сделали import seaborn as sns tips = sns.load_dataset("tips") # Столбчатый график одного цвета sns.barplot(data=tips, x="day", y="tip", color="skyblue")
Вывод:
Мы можем создать столбчатый график с несколькими цветами, используя параметр palette, как показано ниже:
# Загрузите набор данных tips, если вы еще этого не сделали import seaborn as sns tips = sns.load_dataset("tips") # Используя другую цветовую палитру sns.barplot(data=tips, x="day", y="tip", palette="Set2")
Вывод:
Столбчатый график Seaborn с несколькими колонками
Одной из самых мощных функций столбчатых графиков Seaborn является возможность отображать взаимосвязи между несколькими переменными с помощью параметра hue
. Это создает сгруппированные столбцы, что облегчает сравнение.
Давайте сравним чаевые за оба дня и время приёма пищи, используя параметр hue
как показано ниже:
# Загрузите набор данных чаевых, если вы ещё этого не сделали import seaborn as sns tips = sns.load_dataset("tips") # Создайте сгруппированный столбчатый график, показывающий чаевые по дням и времени sns.barplot( data=tips, x="day", y="tip", hue="time" )
Вывод:
На приведённом выше графике показаны два столбца – один для обеда и один для ужина. Эта группировка помогает нам увидеть не только, как чаевые варьируются по дням, но и как они различаются между временем приёма пищи.
Создание сложенного столбчатого графика с помощью seaborn
Сложенные столбчатые графики отлично подходят для показа состава различных категорий. Хотя в Seaborn нет прямой функции для сложенного столбчатого графика, мы можем объединить её с matplotlib, чтобы создать эффективные сложенные визуализации.
Этот подход использует статистическую функциональность Seaborn при использовании возможностей сложения matplotlib. В качестве примера, в наборе данных чаевых давайте посмотрим, как чаевые распределяются между курящими и некурящими в разные дни.
Начнём с импорта необходимых библиотек для нашей визуализации:
# Импортируйте необходимые библиотеки import seaborn as sns import matplotlib.pyplot as plt import numpy as np
Теперь загрузим наш набор данных, содержащий информацию о чаевых в ресторанах:
# Загрузите набор данных чаевых tips = sns.load_dataset("tips")
Мы создадим фигуру с соответствующими размерами для нашей визуализации:
# Создать фигуру и ось plt.figure(figsize=(10, 4))
Далее мы рассчитаем средние чаевые для курящих и некурящих в разные дни:
# Рассчитать значения для стекания # Отфильтровать курящих, сгруппировать по дням и получить средние чаевые smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean() # Отфильтровать некурящих, сгруппировать по дням и получить средние чаевые non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()
Теперь мы настроим основные параметры для наших стеклянных столбиков, как показано ниже:
# Построить стеклянные столбики с использованием matplotlib days = smoker_means.index width = 0.8
Теперь мы создадим нижний слой наших стеклянных столбиков для некурящих:
# Создать нижние столбики (некурящие) plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])
Добавим верхний слой для чаевых курящих:
# Создать верхние столбики (курящие) plt.bar(days, smoker_means, width, bottom=non_smoker_means, label='Smoker', color=sns.color_palette()[1])
Установим чистый стиль без сетки, используя стиль seaborn:
# Добавить стиль Seaborn sns.set_style("white")
Наконец, мы отобразим наш готовый стеклянный график:
# Показать график plt.show()
Вывод:
Полученный график показывает средние чаевые от курящих, сложенные поверх чаевых некурящих для каждого дня, что упрощает сравнение как общих чаевых, так и вклада от каждой группы.
Этот обходной путь позволяет нам:
- Сохранить привлекательный визуальный стиль Seaborn
- Сложить наши столбики, чтобы показать состав
- Сохранить статистическую природу нашей визуализации
- Использовать цветовые палитры Seaborn для согласованности
Расширенные функции и советы
Теперь, когда мы рассмотрели основы и настройки, давайте посмотрим на некоторые продвинутые функции, которые могут сделать наши столбчатые диаграммы более информативными и профессиональными. Мы продолжим использовать набор данных о чаевых для демонстрации этих продвинутых техник.
Аннотирование столбчатых диаграмм
Добавление значений на столбцы может сделать ваши визуализации более точными и информативными. Давайте создадим столбчатую диаграмму, которая показывает точные значения чаевых над каждым столбцом.
Сначала импортируем наши библиотеки и подготовим данные:
# Импорт необходимых библиотек import seaborn as sns import matplotlib.pyplot as plt # Загрузить и подготовить набор данных о чаевых tips = sns.load_dataset("tips")
Создадим нашу столбчатую диаграмму со статистическими значениями:
# Создать базовую столбчатую диаграмму ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None) # Create barplot and store the axes object for annotations
Далее мы добавим значения над каждым столбцом, как показано ниже:
# Получить высоту каждого столбца bars = ax.containers[0] # Get the bar container object heights = [bar.get_height() for bar in bars] # Extract height of each bar # Добавить текстовые аннотации над каждым столбцом for bar, height in zip(bars, heights): # Loop through bars and heights together ax.text( bar.get_x() + bar.get_width()/2., # X position (center of bar) height, # Y position (top of bar) f'${height:.2f}', # Text (format as currency) ha='center', # Horizontal alignment va='bottom' # Vertical alignment )
Вывод:
Управление осями и шкалами
При создании столбчатых диаграмм настройка осей помогает сделать ваши данные более читаемыми и впечатляющими. Давайте посмотрим, как настроить пределы осей, метки и деления с использованием функций Seaborn.
Сначала мы импортируем нашу библиотеку и загрузим набор данных, необходимый для нашей визуализации:
# Импорт необходимых библиотек import seaborn as sns # Загрузить и подготовить набор данных о чаевых tips = sns.load_dataset("tips")
Мы можем создать столбчатую диаграмму с пользовательскими метками и порядком дней. Параметр order
позволяет нам точно указать, как мы хотим расположить наши дни по оси x:
# Создать столбчатую диаграмму с метками осей ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', ‘Fri', 'Sun'] # Set custom order for days )
Чтобы сделать наш график более информативным, мы можем добавить описательные метки для обеих осей, используя метод set
:
# Установить описательные метки осей ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' )
Чтобы точно настроить нашу визуализацию, мы можем установить определенные пределы и отметки. Параметр ylim
контролирует диапазон оси y, в то время как xticks
и yticks
позволяют нам точно определить, где мы хотим, чтобы отметки появились:
# Настроить пределы осей и отметки ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )
Чтобы включить все эти изменения в график, нам нужно выполнить их все сразу, а не по одному. Весь код показан ниже:
# Импортируем необходимые библиотеки import seaborn as sns # Загружаем и подготавливаем набор данных tips tips = sns.load_dataset("tips") # Создаем столбчатую диаграмму с подписями осей ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', 'Fri', 'Sun'] # Set custom order for days ) # Устанавливаем описательные подписи осей ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' ) # Настраиваем пределы осей и деления ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )
Вывод:
Полученный график показывает чаевые по дням с ясными подписями, подходящими масштабами и хорошо организованными делениями, что облегчает чтение и интерпретацию данных.
Включение погрешностей
Погрешности помогают визуализировать неопределенность или изменчивость в ваших данных. Seaborn предлагает несколько вариантов добавления погрешностей к вашим столбчатым диаграммам, включая доверительные интервалы и стандартное отклонение.
Сначала мы импортируем нашу библиотеку и загружаем набор данных, необходимый для нашей визуализации:
# Импортируем необходимые библиотеки import seaborn as sns # Загружаем и подготавливаем набор данных с чаевыми tips = sns.load_dataset("tips")
По умолчанию Seaborn показывает доверительные интервалы 95%. Мы можем изменить это, используя параметр ‘errorbar’, чтобы показать различные типы статистических оценок:
# Создаем столбчатую диаграмму с доверительными интервалами ax = sns.barplot( data=tips, x="day", y="tip", errorbar="ci", # Show confidence interval capsize=0.1 # Add small caps to error bars )
Вывод:
Мы также можем показать стандартное отклонение вместо доверительных интервалов, что помогает визуализировать разброс наших данных:
# Переключаемся на стандартное отклонение ax = sns.barplot( data=tips, x="day", y="tip", errorbar="sd", # Show standard deviation capsize=0.1 # Add small caps to error bars )
Вывод:
Иногда мы можем захотеть полностью удалить полосы ошибок для более чистого вида:
# Создание столбчатой диаграммы без полос ошибок ax = sns.barplot( data=tips, x="day", y="tip", errorbar=None # Remove error bars )
Вывод:
Полученные диаграммы показывают, как разные типы полос ошибок могут помочь нам понять изменчивость наших данных о чаевых в разные дни недели.
Практические применения столбчатых диаграмм Seaborn
Столбчатые диаграммы – это универсальные инструменты в визуализации данных, особенно полезные, когда нужно сравнить значения по различным категориям или одновременно проанализировать несколько переменных. Давайте рассмотрим два распространенных применения, в которых столбчатые диаграммы Seaborn преуспевают.
Визуализация тенденций категориальных данных
Гистограммы Seaborn отлично справляются с выявлением закономерностей в категориальных данных, особенно при анализе метрик в различных группах. Показывая как центральную тенденцию, так и неопределенность, гистограммы помогают выявить значительные различия между категориями.
Это делает их идеальными для анализа поведения клиентов, производительности продуктов или ответов на опросы, где необходимо сравнить значения между различными группами.
Сравнение нескольких переменных
Когда наш анализ включает несколько факторов, гистограммы Seaborn могут выделить сложные взаимосвязи в наших данных. Использование таких функций, как группировка (оттенок) или стекование, помогает одновременно сравнивать разные переменные, что облегчает обнаружение закономерностей и взаимодействий между различными аспектами наших данных.
Заключение
Гистограммы Seaborn находят правильный баланс между простотой и статистическим анализом. Интуитивный синтаксис библиотеки в сочетании с мощными статистическими функциями делает её незаменимым инструментом для визуализации данных. От простых сравнений категорий до сложных групповых визуализаций, гистограммы помогают эффективно выявлять и передавать данные.
Готовы повысить свои навыки визуализации данных? Вот что вам стоит изучить дальше:
- Нужен быстрый справочник? Ознакомьтесь с нашим Шпаргалкой по Python Seaborn
- Изучите линейные графики далее в нашем Учебнике по линейным графикам Seaborn
- Научитесь визуализировать корреляции, пройдя через Учебник по тепловым картам Seaborn
- Овладейте распределениями данных с нашим руководством по Как создать гистограмму в Seaborn
Хотите поднять свои навыки работы с Seaborn на новый уровень? Запишитесь на курс Посредственная визуализация данных с помощью Seaborn.