Для чего нужна библиотека seaborn
Перейти к содержимому

Для чего нужна библиотека seaborn

  • автор:

Как строить красивые графики на Python с Seaborn

Визуализация данных — это метод, который позволяет специалистам по анализу данных преобразовывать сырые данные в диаграммы и графики, которые несут ценную информацию. Диаграммы уменьшают сложность данных и делают более понятными для любого пользователя.

Есть множество инструментов для визуализации данных, таких как Tableau, Power BI, ChartBlocks и других, которые являются no-code инструментами. Они очень мощные, и у каждого своя аудитория. Однако для работы с сырыми данными, требующими обработки, а также в качестве песочницы, Python подойдет лучше всего.

Несмотря на то, что этот путь сложнее и требует умения программировать, Python позволит вам провести любые манипуляции, преобразования и визуализировать ваши данные. Он идеально подходит для специалистов по анализу данных.

Python — лучший инструмент для data science и этому много причин, но самая важная — это его экосистема библиотек. Для работы с данными в Python есть много замечательных библиотек, таких как numpy , pandas , matplotlib , tensorflow .

Matplotlib , вероятно, самая известная библиотека для построения графиков, которая доступна в Python и других языках программирования, таких как R. Именно ее уровень кастомизации и удобства в использовании ставит ее на первое место. Однако с некоторыми действиями и кастомизациями во время ее использования бывает справиться нелегко.

Разработчики создали новую библиотеку на основе matplotlib , которая называется seaborn . Seaborn такая же мощная, как и matplotlib , но в то же время предоставляет большую абстракцию для упрощения графиков и привносит некоторые уникальные функции.

В этой статье мы сосредоточимся на том, как работать с seaborn для создания первоклассных графиков. Если хотите, можете создать новый проект и повторить все шаги или просто обратиться к моему руководству по seaborn на GitHub.

Что такое Seaborn?

Seaborn — это библиотека для создания статистических графиков на Python. Она основывается на matplotlib и тесно взаимодействует со структурами данных pandas.

Архитектура Seaborn позволяет вам быстро изучить и понять свои данные. Seaborn захватывает целые фреймы данных или массивы, в которых содержатся все ваши данные, и выполняет все внутренние функции, нужные для семантического маппинга и статистической агрегации для преобразования данных в информативные графики.

Она абстрагирует сложность, позволяя вам проектировать графики в соответствии с вашими нуждами.

Установка Seaborn

Установить seaborn так же просто, как и любую другую библиотеку, для этого вам понадобится ваш любимый менеджер пакетов Python. Во время установки seaborn библиотека установит все зависимости, включая matplotlib , pandas , numpy и scipy .

Давайте уже установим seaborn и, конечно же, также пакет notebook , чтобы получить доступ к песочнице с данными.

pipenv install seaborn notebook

Помимо этого, перед началом работы давайте импортируем несколько модулей.

import seaborn as sns import pandas as pd import numpy as np import matplotlib
Строим первые графики

Перед тем, как мы начнем строить графики, нам нужны данные. Прелесть seaborn в том, что он работает непосредственно с объектами dataframe из pandas , что делает ее очень удобной. Более того, библиотека поставляется с некоторыми встроенными наборами данных, которые можно использовать прямо из кода, и не загружать файлы вручную.

Давайте посмотрим, как это работает на наборе данных о рейсах самолетов.

flights_data = sns.load_dataset("flights") flights_data.head()

Топ-10 библиотек Python для Data Science

Уже довольно давно Python очаровывает ученых, занимающихся данными. Чем больше я взаимодействую с ресурсами, литературой, курсами, тренингами и людьми в науке о данных, тем более глубокие знания Python приобретаю. При этом, когда я только начинал развивать свои навыки Python, у меня был целый список библиотек, о которых мне предстояло узнать. И вот, через некоторое время.

Специалисты в области Data Science точно знают о библиотеках Python, которые можно использовать в науке о данных, но когда в интервью просят назвать их или указать их функцию, мы часто попадаем впросак или, возможно, не помним более 5 библиотек (это случилось со мной: / )

Сегодня я подготовил список из 10 библиотек Python, которые помогают в области Data Science, когда их использовать, каковы их особенности и преимущества.

В этой статье я кратко изложил 10 наиболее полезных библиотеках Python для data scientist’ов и инженеров, основываясь на моем недавнем опыте и исследованиях. Читайте статью до конца, чтобы узнать о 4 бонусных библиотеках!

1. Pandas

Pandas — это пакет Python с открытым исходным кодом, который предоставляет высокоэффективные, простые в использовании структуры данных и инструменты анализа для помеченных данных на языке программирования Python. Pandas расшифровывается как библиотека анализа данных Python. Кто-нибудь знал об этом?

Когда использовать? Pandas — это идеальный инструмент для обработки данных. Он предназначен для быстрой и простой обработки данных, чтения, агрегирования и визуализации.

Pandas берет данные в файле CSV или TSV или базу данных SQL и создает объект Python со строками и столбцами, который называется фреймом данных. Фрейм данных очень похож на таблицу в статистическом программном обеспечении, скажем, в Excel или SPSS.

Что можно делать с помощью Pandas?

1. Индексирование, манипулирование, переименование, сортировка, объединение фрейма данных;

2. Обновить, добавить, удалить столбцы из фрейма данных;

3. Восстановить недостающие файлы, обработать недостающие данные или NAN;

4. Построить гистограмму или прямоугольную диаграмму.

Это делает Pandas фундаментальной библиотекой в ​​изучении Python для Data Science. Если вам интересно узнать 10 приемов Python Pandas, которые сделают вашу работу более эффективной, читайте нашу статью.

2. NumPy

NumPy — один из самых фундаментальных пакетов в Python — универсальный пакет для обработки массивов. Он предоставляет высокопроизводительные объекты многомерных массивов и инструменты для работы с массивами. NumPy — это эффективный контейнер универсальных многомерных данных.

Основной объект NumPy — это однородный многомерный массив. Это таблица элементов или чисел одного и того же типа данных, проиндексированная набором натуральных чисел. В NumPy размеры называются осями, а число осей называется рангом. Класс массива NumPy называется ndarray, он же array.

Когда использовать? NumPy используется для обработки массивов, в которых хранятся значения одного и того же типа данных. NumPy облегчает математические операции над массивами и их векторизацию. Это значительно повышает производительность и, соответственно, ускоряет время выполнения.

Что можно делать с помощью NumPy?

1. Основные операции с массивами: добавление, умножение, срез, выравнивание, изменение формы, индексирование массивов;

2. Расширенные операции с массивами: стековые массивы, разбиение на секции, широковещательные массивы;

3. Работа с DateTime или линейной алгеброй;

4. Основные нарезки и расширенное индексирование в NumPy Python.

О 4 приемах Python NumPy, которые должен знать каждый новичок, читайте здесь.

3. SciPy

Библиотека SciPy является одним из ключевых пакетов, которые составляют стек SciPy. Теперь есть разница между SciPy Stack и библиотекой SciPy. SciPy основывается на объекте массива NumPy и является частью стека, который включает в себя такие инструменты, как Matplotlib, Pandas и SymPy с дополнительными инструментами.

Библиотека SciPy содержит модули для эффективных математических процедур, таких как линейная алгебра, интерполяция, оптимизация, интеграция и статистика. Основной функционал библиотеки SciPy построен на NumPy и его массивах.

Когда использовать? SciPy использует массивы в качестве базовой структуры данных. Он имеет различные модули для выполнения общих задач научного программирования, таких как линейная алгебра, интеграция, матанализ, обыкновенные дифференциальные уравнения и обработка сигналов.

Что можно делать с помощью SciPy?

1. Математические, научные, инженерные вычисления;

2. Процедуры численной интеграции и оптимизации;

3. Поиск минимумов и максимумов функций;

4. Вычисление интегралов функции;

5. Поддержка специальных функций;

6. Работа с генетическими алгоритмами;

7. Решение обыкновенных дифференциальных уравнений.

4. Matplotlib

Это, несомненно, моя любимая и основная библиотека Python. Вы можете создавать истории с данными, визуализированными с помощью Matplotlib. Еще одна библиотека из стека SciPy — Matplotlib — строит 2D-фигуры.

Когда использовать? Matplotlib — это библиотека Python, предоставляющая API для встраивания графиков в приложения. Очень напоминает MATLAB, встроенный в язык программирования Python.

Что можно делать с помощью Matplotlib?

Гистограммы, столбцовые диаграммы, точечные диаграммы, круговые диаграммы — Matplotlib может отображать широкий спектр визуализаций. Приложив немного усилий, с Matplotlib, вы можете создавать любые визуализации:

1. Линейные диаграммы;

2. Точечные диаграммы;

3. Диаграммы с областями;

4. Столбцовые диаграммы и гистограммы;

5. Круговые диаграммы;

6. Диаграммы «стебель-листья»;

7. Контурные графики;

8. Поля векторов;

Matplotlib также облегчает использование меток, сеток, легенд и некоторых других объектов форматирования. В общем, речь идет обо всем, что можно нарисовать!

5. Seaborn

Итак, когда вы читаете официальную документацию по Seaborn, она определяется как библиотека визуализации данных на основе Matplotlib, предоставляющем высокоуровневый интерфейс для изображения интересных и информативных статистических графиков. Проще говоря, seaborn — это расширение Matplotlib с дополнительными возможностями.

Так в чем разница между Matplotlib и Seaborn? Matplotlib используется для основного построения столбцовых, круговых, линейных, точечных диаграмм и пр., в то время как Seaborn предоставляет множество шаблонов визуализации с меньшим количеством синтаксических правил, причем более простых.

Что можно делать с помощью Seaborn?

1. Определять отношения между несколькими переменными (корреляция);

2. Соблюдать качественные переменные для агрегированных статистических данных;

3. Анализировать одномерные или двумерные распределения и сравнивать их между различными подмножествами данных;

4. Построить модели линейной регрессии для зависимых переменных;

5. Обеспечить многоуровневые абстракции, многосюжетные сетки.

Seaborn — это отличный вариант для библиотек визуализации R, таких как corrplot и ggplot.

6. Scikit Learn

Scikit Learn, представленный миру как проект Google Summer of Code, представляет собой надежную библиотеку машинного обучения для Python. Он включает в себя алгоритмы ML, такие как SVM, random forests, k-means кластеризацию, спектральную кластеризацию, сдвиг среднего значения, перекрестную проверку и многие другие. Даже NumPy, SciPy и связанные с ними научные операции поддерживаются Scikit Learn, при этом Scikit Learn является частью SciPy Stack.

Когда использовать? Scikit-learn предоставляет ряд контролируемых и неконтролируемых алгоритмов обучения через согласованный интерфейс в Python. Scikit learn будет вашим руководством для того, чтобы модели контролируемого обучения, такие как Naive Bayes, группировали непомеченные данные, такие как KMeans.

Что можно делать с помощью Scikit Learn?

1. Классификация: обнаружение спама, распознавание изображений;

2. Кластеризация: воздействия лекарственных препаратов, цена акций;

3. Регрессия: сегментация клиентов, группировка результатов эксперимента;

4. Уменьшение размерности: визуализация, повышенная эффективность;

5. Выбор модели: повышенная точность благодаря настройке параметров;

6. Предварительная обработка: подготовка входных данных в виде текста для обработки с помощью алгоритмов машинного обучения.

Scikit Learn фокусируется на моделировании данных; не манипулировании данными. Для обобщения и манипуляции у нас есть NumPy и Pandas.

7. TensorFlow

Еще в 2017 году я получил TensorFlow USB в знак признательности за то, что был потрясающим докладчиком на мероприятии Google WTM, хаха. На USB был загружен официальный документ о TensorFlow. Не имея представления о том, что такое TensorFlow, я его погуглил.

TensorFlow — это библиотека AI, которая помогает разработчикам создавать крупномасштабные нейронные сети со многими слоями, используя графики потоков данных. TensorFlow также облегчает построение моделей глубокого обучения, продвигает современную технологию ML / AI и позволяет легко развертывать приложения на базе ML.

Одним из наиболее развитых веб-сайтов среди всех библиотек является TensorFlow. Гиганты, такие как Google, Coca-Cola, Airbnb, Twitter, Intel, DeepMind, все используют TensorFlow!

Когда использовать? TensorFlow достаточно эффективен, когда дело доходит до классификации, восприятия, понимания, обнаружения, прогнозирования и создания данных.

Что можно делать с помощью TensorFlow?

1. Распознавание голоса / звука — IoT, автомобильная промышленность, безопасность, UX/UI, телекоммуникации;

2. Анализ настроений — в основном для CRM или CX;

3. Текстовые Приложения — Обнаружение угроз, Google Translate, Gmail Smart Reply;

4. Распознавание лиц — Facebook’s Deep Face, Photo tagging, Smart Unlock;

5. Временной ряд — рекомендации от Amazon, Google и Netflix;

6. Обнаружение видео — обнаружение движения, обнаружение угроз в реальном времени в играх, безопасности, аэропортах.

Более подробно о TensorFlow рассказываем в статье.

8. Keras

Keras — это высокоуровневый API TensorFlow для создания и обучения кода глубоких нейронных сетей. Это библиотека нейронных сетей с открытым исходным кодом на Python. С Keras статистическое моделирование, работа с изображениями и текстом намного легче с упрощенным кодированием для глубокого обучения.

В чем разница между Keras и TensorFlow?

Keras — это нейросетевая библиотека, написанная на языке Python, а TensorFlow — это библиотека с открытым исходным кодом для различных задач машинного обучения. TensorFlow предоставляет как высокоуровневые, так и низкоуровневые API, в то время как Keras предоставляет только высокоуровневые API. Keras создан для Python и делает его более удобным, модульным и компонуемым, чем TensorFlow.

Что можно делать с помощью Keras?

1. Определить процентную точность;

2. Функция вычисления потерь;

3. Создать пользовательские функциональные слои;

4. Встроенные функции обработки данных и изображений;

5. Функции с повторяющимися блоками кода: глубиной 20, 50, 100 слоев.

9. Statsmodels

Когда я сначала изучил R, проведение статистических тестов и исследование статистических данных казались мне самым простым в R и я избегал Python для статистического анализа до тех пор, пока я не изучил Statsmodels в Python.

Когда использовать? Statsmodels — это универсальный пакет Python, который обеспечивает простые вычисления для описательной статистики и оценки и формирования статистических моделей.

Что можно делать с помощью Statsmodels?

1. Линейная регрессия;

3. Метод наименьшего квадрата (OLS);

4. Анализ выживания;

5. Обобщенные линейные модели и байесовская модель;

6. Однофакторный и двухфакторный анализ, проверка гипотез (в основном, что может сделать R!).

10. Plotly

Plotly — это типичная графическая библиотека для Python. Пользователи могут импортировать, копировать, вставлять или передавать данные, которые должны быть проанализированы и визуализированы. Plotly предлагает изолированную версию Python (где вы можете запустить Python, ограниченный в своих возможностях). Теперь осталось понять, что значит ограниченная версия, но я точно знаю, что Plotly облегчает задачу!

Когда использовать? Вы можете использовать Plotly, если хотите создавать и отображать фигуры, обновлять фигуры, наводить курсор на текст для получения подробной информации. Plotly также имеет дополнительную функцию отправки данных на облачные серверы. Это интересно!

Что можно делать с помощью Plotly?

Библиотека графиков Plotly имеет широкий спектр графиков, которые вы можете построить:

1. Основные диаграммы: линейные, круговые, точечные, пузырьковые, Ганта, санбёрст, древовидные, санкей, графики с областями;

2. Статистические стили и стили Seaborn: ошибки, гистограммы, диаграммы Facet и Trellis, деревообразные графики, графики-скрипки, линии тренда;

3. Научные карты: контур, троичный сюжет, логарифмический график, поля векторов, ковровый график (Carpet plot), радарчарт, тепловые карты Роза ветров и Полярный сюжет;

4. Финансовые графики;

8. Взаимодействие Jupyter Widgets.

Plotly это типичная библиотека графиков. Подумайте о визуализации и Plotly сделает это!

Итак, мы изучили путеводитель по топ 10 библиотекам Python для науки о данных, а теперь рассмотрим наши 4 бонусные библиотеки!

1. SpaСy

SpaCy — это библиотека с открытым исходным кодом, используемая для продвинутого NLP для Python и Cython (язык программирования Python, обеспечивающий ощущение и производительность в стиле C с кодом Python, а также синтаксис на основе C).

2. Bokeh

Bokeh — это библиотека Python, которую я бы назвал интерактивной визуализацией данных. С такими инструментами, как Tableau, QlikView или PowerBI, зачем нам Bokeh? Во-первых, Bokeh позволяет очень быстро строить сложные статистические графики с помощью простых команд. Он поддерживает вывод HTML, блокнота или сервера. Во-вторых, можно интегрировать визуализацию Bokeh в приложения Flask и Django или визуализации, написанные в других библиотеках, таких как matplotlib, seaborn, ggplot.

3. Gensim

Gensim — это то, что, по моему мнению, сильно отличается от того, что мы встречали до этого. Он автоматически извлекает семантические темы из документов без труда и с высокой эффективностью. Алгоритмы Gensim не контролируются, это означает, что никакой человеческий ввод не требуется — просто текстовые документы, и затем выполняется извлечение.

4. NLTK

NLTK (Natural Language Toolkit) в основном работает с человеческим языком, а не с компьютерным, чтобы применять обработку естественного языка (NLP). Он содержит библиотеки обработки текста, с помощью которых вы можете выполнять токенизацию, парсинг, классификацию, выделение, тегирование и семантическое обоснование данных. На основе функционала этой библиотеки может показаться, что она повторяется, но каждая библиотека в Python была написана для повышения некоторой эффективности.

Сиборн – Введение

В мире аналитики лучший способ получить представление – это визуализировать данные. Данные можно визуализировать, представляя их в виде графиков, которые легко понять, изучить и понять. Такие данные помогают привлечь внимание ключевых элементов.

Для анализа набора данных с использованием Python мы используем Matplotlib, широко распространенную библиотеку 2D-черчения. Аналогично, Seaborn – это библиотека визуализации на Python. Он построен на вершине Matplotlib.

Сиборн против Матплотлиб

Подводя итог, можно сказать, что если Matplotlib «пытается сделать легкие вещи легкими, а сложные – возможными», Seaborn также пытается упростить четкий набор сложных вещей ».

Seaborn помогает решить две основные проблемы, с которыми сталкивается Matplotlib; проблемы –

  • Стандартные параметры Matplotlib
  • Работа с фреймами данных

Поскольку Seaborn дополняет и расширяет Matplotlib, кривая обучения довольно постепенная. Если вы знаете Matplotlib, вы уже на полпути через Seaborn.

Важные особенности Seaborn

Seaborn построен поверх базовой библиотеки визуализации Python Matplotlib. Он должен служить дополнением, а не заменой. Тем не менее, Seaborn имеет некоторые очень важные функции. Давайте посмотрим на некоторые из них здесь. Функции помогают в –

  • Встроенные темы для оформления графики matplotlib
  • Визуализация одномерных и двумерных данных
  • Подгонка и визуализация моделей линейной регрессии
  • Построение статистических данных временных рядов
  • Seaborn хорошо работает со структурами данных NumPy и Pandas
  • Он поставляется со встроенными темами для оформления графики Matplotlib

В большинстве случаев вы все равно будете использовать Matplotlib для простого построения графиков. Знание Matplotlib рекомендуется для настройки графиков Seaborn по умолчанию.

Seaborn – Настройка среды

В этой главе мы обсудим настройку среды для Seaborn. Давайте начнем с установки и поймем, как начать работу по мере продвижения вперед.

Установка Seaborn и начало работы

В этом разделе мы поймем шаги, связанные с установкой Seaborn.

Использование Pip Installer

Чтобы установить последнюю версию Seaborn, вы можете использовать pip –

pip install seaborn

Для Windows, Linux и Mac с использованием Anaconda

Anaconda (из https://www.anaconda.com/) – это бесплатный дистрибутив Python для стека SciPy. Он также доступен для Linux и Mac.

Также можно установить выпущенную версию, используя conda –

conda install seaborn

Установить разрабатываемую версию Seaborn прямо с github

зависимости

Рассмотрим следующие зависимости Seaborn –

  • Python 2.7 или 3.4+
  • NumPy
  • SciPy
  • панд
  • Matplotlib

Seaborn – Импорт наборов данных и библиотек

В этой главе мы обсудим, как импортировать наборы данных и библиотеки. Давайте начнем с понимания того, как импортировать библиотеки.

Импорт библиотек

Давайте начнем с импорта Pandas, отличной библиотеки для управления реляционными (в табличном формате) наборами данных. Seaborn очень удобен при работе с DataFrames, наиболее широко используемой структурой данных для анализа данных.

Следующая команда поможет вам импортировать панд –

# Pandas for managing datasets import pandas as pd

Теперь давайте импортируем библиотеку Matplotlib, которая помогает нам настраивать наши графики.

# Matplotlib for additional customization from matplotlib import pyplot as plt

Мы импортируем библиотеку Seaborn с помощью следующей команды:

# Seaborn for plotting and styling import seaborn as sb

Импорт наборов данных

Мы импортировали необходимые библиотеки. В этом разделе мы поймем, как импортировать необходимые наборы данных.

Seaborn поставляется с несколькими важными наборами данных в библиотеке. Когда Seaborn установлен, наборы данных загружаются автоматически.

Вы можете использовать любой из этих наборов данных для обучения. С помощью следующей функции вы можете загрузить необходимый набор данных

load_dataset()

Импортирование данных как Pandas DataFrame

В этом разделе мы импортируем набор данных. Этот набор данных загружается как Pandas DataFrame по умолчанию. Если в DataFrame Pandas есть какая-либо функция, она работает в этом DataFrame.

Следующая строка кода поможет вам импортировать набор данных –

# Seaborn for plotting and styling import seaborn as sb df = sb.load_dataset('tips') print df.head()

Выше строка кода будет генерировать следующий вывод –

total_bill tip sex smoker day time size 0 16.99 1.01 Female No Sun Dinner 2 1 10.34 1.66 Male No Sun Dinner 3 2 21.01 3.50 Male No Sun Dinner 3 3 23.68 3.31 Male No Sun Dinner 2 4 24.59 3.61 Female No Sun Dinner 4

Чтобы просмотреть все доступные наборы данных в библиотеке Seaborn, вы можете использовать следующую команду с функцией get_dataset_names (), как показано ниже:

import seaborn as sb print sb.get_dataset_names()

Приведенная выше строка кода вернет список наборов данных, доступных как следующий вывод

[u'anscombe', u'attention', u'brain_networks', u'car_crashes', u'dots', u'exercise', u'flights', u'fmri', u'gammas', u'iris', u'planets', u'tips', u'titanic']

DataFrames хранят данные в форме прямоугольных сеток, с помощью которых можно легко просматривать данные. Каждая строка прямоугольной сетки содержит значения экземпляра, а каждый столбец сетки представляет собой вектор, который содержит данные для определенной переменной. Это означает, что строки DataFrame не обязательно должны содержать значения одного и того же типа данных, они могут быть числовыми, символьными, логическими и т. Д. DataFrames для Python поставляются с библиотекой Pandas и определяются как двумерные помеченные структуры данных. с потенциально разными типами столбцов.

Для более подробной информации о DataFrames, посетите наш учебник по пандам.

Сиборн – Эстетическая фигура

Визуализация данных – это один шаг, а дальнейшее улучшение визуализации данных – еще один шаг. Визуализация играет жизненно важную роль в передаче количественных данных аудитории, чтобы привлечь их внимание.

Эстетика означает совокупность принципов, касающихся природы и ценности красоты, особенно в искусстве. Визуализация – это искусство представления данных эффективным и простым способом.

Библиотека Matplotlib отлично поддерживает настройку, но для ее использования необходимо знать, какие настройки нужно настроить для получения привлекательного и ожидаемого сюжета. В отличие от Matplotlib, Seaborn поставляется с настроенными темами и высокоуровневым интерфейсом для настройки и управления внешним видом фигур Matplotlib.

пример

import numpy as np from matplotlib import pyplot as plt def sinplot(flip = 1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) sinplot() plt.show()

Вот как выглядит сюжет с настройками по умолчанию Matplotlib –

Matplotlib

Чтобы изменить тот же график на значения по умолчанию Seaborn, используйте функцию set ()

пример

import numpy as np from matplotlib import pyplot as plt def sinplot(flip = 1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set() sinplot() plt.show()

Выход

выход

Приведенные выше два рисунка показывают разницу в графиках по умолчанию Matplotlib и Seaborn. Представление данных одинаково, но стиль представления различен в обоих случаях.

По сути, Seaborn разбивает параметры Matplotlib на две группы:

  • Стили сюжета
  • Масштаб участка

Seaborn Figure Styles

Интерфейсом для манипулирования стилями является set_style () . С помощью этой функции вы можете установить тему сюжета. Согласно последней обновленной версии, ниже представлены пять доступных тем.

Давайте попробуем применить тему из вышеупомянутого списка. Темой по умолчанию для сюжета будет darkgrid, которую мы видели в предыдущем примере.

пример

import numpy as np from matplotlib import pyplot as plt def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set_style("whitegrid") sinplot() plt.show()

Выход

Темная сторона

Разница между двумя приведенными выше графиками заключается в цвете фона

Снятие Оси Колючки

В темах white и ticks мы можем удалить верхнюю и правую оси, используя функцию despine () .

пример

import numpy as np from matplotlib import pyplot as plt def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set_style("white") sinplot() sb.despine() plt.show()

Выход

Шипы

На обычных графиках мы используем только левую и нижнюю оси. Используя функцию despine () , мы можем избежать ненужных шипов правой и верхней осей, что не поддерживается в Matplotlib.

Переопределение элементов

Если вы хотите настроить стили Seaborn, вы можете передать словарь параметров в функцию set_style () . Доступные параметры просматриваются с помощью функции axes_style () .

пример

import seaborn as sb print sb.axes_style

Выход

Изменение значений любого параметра изменит стиль графика.

пример

import numpy as np from matplotlib import pyplot as plt def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set_style("darkgrid", 'axes.axisbelow': False>) sinplot() sb.despine() plt.show()

Выход

элементы

Масштабирование элементов графика

У нас также есть контроль над элементами графика и мы можем контролировать масштаб графика с помощью функции set_context () . У нас есть четыре предустановленных шаблона для контекстов, основанные на относительном размере, контексты названы следующим образом

По умолчанию контекст установлен на блокнот; и был использован на графиках выше.

пример

import numpy as np from matplotlib import pyplot as plt def sinplot(flip = 1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set_style("darkgrid", ) sinplot() sb.despine() plt.show()

Выход

пересчет

Выходной размер реального графика больше по сравнению с вышеупомянутыми графиками.

Примечание. Из-за масштабирования изображений на нашей веб-странице вы можете пропустить фактическую разницу в наших примерах.

Сиборн – Цветовая палитра

Цвет играет важную роль, чем любой другой аспект визуализации. При эффективном использовании цвет добавляет больше значения графику. Палитра означает плоскую поверхность, на которой художник размещает и смешивает краски.

Цветовая палитра здания

Seaborn предоставляет функцию под названием color_palette () , которую можно использовать для придания цветов графикам и добавления к ним большего эстетического значения.

использование

 seaborn.color_palette (palette = Нет, n_colors = Нет, desat = Нет) 

параметр

В следующей таблице перечислены параметры для построения цветовой палитры –

Количество цветов в палитре. Если None, значение по умолчанию будет зависеть от того, как указана палитра. По умолчанию значение n_colors составляет 6 цветов.

Пропорция для обесцвечивания каждого цвета.

Количество цветов в палитре. Если None, значение по умолчанию будет зависеть от того, как указана палитра. По умолчанию значение n_colors составляет 6 цветов.

Пропорция для обесцвечивания каждого цвета.

Вернуть

Возвращение относится к списку кортежей RGB. Ниже приведены доступные палитры Seaborn –

  • глубоко
  • приглушенный
  • яркий
  • пастельный
  • Темно
  • Дальтонизм

Помимо этого, можно также создать новую палитру

Трудно решить, какую палитру следует использовать для данного набора данных, не зная характеристик данных. Зная об этом, мы классифицируем различные способы использования типов color_palette ()

  • качественный
  • последовательный
  • отклонение

У нас есть другая функция seaborn.palplot (), которая работает с цветовой палитрой. Эта функция отображает цветовую палитру как горизонтальный массив. Мы узнаем больше о seaborn.palplot () в следующих примерах.

Качественные цветовые палитры

Качественные или категориальные палитры лучше всего подходят для построения категориальных данных.

пример

from matplotlib import pyplot as plt import seaborn as sb current_palette = sb.color_palette() sb.palplot(current_palette) plt.show()

Выход

Цвет

Мы не передали никаких параметров в color_palette (); по умолчанию мы видим 6 цветов. Вы можете увидеть желаемое количество цветов, передав значение в параметр n_colors . Здесь palplot () используется для горизонтального построения массива цветов.

Последовательные цветовые палитры

Последовательные графики подходят для выражения распределения данных в диапазоне от относительных более низких значений до более высоких значений в пределах диапазона.

При добавлении дополнительного символа ‘s’ к цвету, переданному параметру цвета, будет построен график Последовательный.

пример

from matplotlib import pyplot as plt import seaborn as sb current_palette = sb.color_palette() sb.palplot(sb.color_palette("Greens")) plt.show()

сетка

Примечание. Нам нужно добавить ‘s’ к параметру, как ‘Greens’ в приведенном выше примере.

Расходящаяся палитра

Расходящиеся палитры используют два разных цвета. Каждый цвет представляет изменение значения в пределах от общей точки в любом направлении.

Предположим, что данные располагаются в диапазоне от -1 до 1. Значения от -1 до 0 принимают один цвет, а от 0 до +1 – другой цвет.

По умолчанию значения центрированы от нуля. Вы можете управлять им с помощью параметра center, передавая значение.

пример

from matplotlib import pyplot as plt import seaborn as sb current_palette = sb.color_palette() sb.palplot(sb.color_palette("BrBG", 7)) plt.show()

Выход

коричневый

Настройка цветовой палитры по умолчанию

У функций color_palette () есть сопутствующий элемент set_palette () . Отношения между ними аналогичны парам, описанным в главе, посвященной эстетике. Аргументы одинаковы как для set_palette (), так и для color_palette (), но параметры Matplotlib по умолчанию изменены так, что палитра используется для всех графиков.

пример

import numpy as np from matplotlib import pyplot as plt def sinplot(flip = 1): x = np.linspace(0, 14, 100) for i in range(1, 5): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip) import seaborn as sb sb.set_style("white") sb.set_palette("husl") sinplot() plt.show()

Выход

график

Построение одномерного распределения

Распределение данных – это главное, что нам нужно понять при анализе данных. Здесь мы увидим, как seaborn помогает нам в понимании одномерного распределения данных.

Функция distplot () предоставляет наиболее удобный способ быстро взглянуть на одномерное распределение. Эта функция построит гистограмму, которая соответствует оценке плотности ядра данных.

использование

seaborn.distplot()

параметры

В следующей таблице перечислены параметры и их описание –

Серия, 1d массив или список

Спецификация исторических бинов

Серия, 1d массив или список

Спецификация исторических бинов

Это основные и важные параметры для изучения.

Морской Рог – Гистограмма

Гистограммы представляют распределение данных, формируя ячейки вдоль диапазона данных, а затем рисуя столбцы, чтобы показать количество наблюдений, попадающих в каждую ячейку.

Seaborn поставляется с некоторыми наборами данных, и мы использовали несколько наборов данных в наших предыдущих главах. Мы узнали, как загрузить набор данных и как просмотреть список доступных наборов данных.

Seaborn поставляется с некоторыми наборами данных, и мы использовали несколько наборов данных в наших предыдущих главах. Мы узнали, как загрузить набор данных и как просмотреть список доступных наборов данных.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.distplot(df['petal_length'],kde = False) plt.show()

Выход

Гистограмма

Здесь для флага kde установлено значение False. В результате представление графика оценки ядра будет удалено, и будет построена только гистограмма.

Seaborn – оценки плотности ядра

Оценка плотности ядра (KDE) – это способ оценки функции плотности вероятности непрерывной случайной величины. Используется для непараметрического анализа.

Установка значения флага флага в False в distplot даст график оценки плотности ядра.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.distplot(df['petal_length'],hist=False) plt.show()

Выход

график

Фиттинг Параметрическое Распределение

distplot () используется для визуализации параметрического распределения набора данных.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.distplot(df['petal_length']) plt.show()

Выход

гистограмма

Построение двумерного распределения

Двустороннее распределение используется для определения связи между двумя переменными. Это в основном касается отношений между двумя переменными и того, как одна переменная ведет себя по отношению к другой.

Лучший способ проанализировать двумерное распределение в морской среде – использовать функцию jointplot () .

Jointplot создает многопанельную фигуру, которая проецирует двумерные отношения между двумя переменными, а также одномерное распределение каждой переменной по отдельным осям.

Scatter Plot

Диаграмма рассеяния является наиболее удобным способом визуализации распределения, в котором каждое наблюдение представлено в двухмерном графике через оси x и y.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.jointplot(x = 'petal_length',y = 'petal_width',data = df) plt.show()

Выход

полоса и гистограмма

На приведенном выше рисунке показана взаимосвязь между petal_length и petal_width в данных Iris. Тенденция на графике говорит о том, что между изучаемыми переменными существует положительная корреляция.

Hexbin Plot

Гексагональное объединение используется в двумерном анализе данных, когда данные имеют небольшую плотность, т.е. когда данные очень разбросаны и их трудно анализировать с помощью диаграмм рассеяния.

Дополнительный параметр с именем ‘kind’ и значением ‘hex’ строит график гексбина.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.jointplot(x = 'petal_length',y = 'petal_width',data = df,kind = 'hex') plt.show()

HExagon и брус

Оценка плотности ядра

Оценка плотности ядра – это непараметрический способ оценки распределения переменной. В seaborn мы можем построить kde с помощью jointplot ().

Передайте значение ‘kde’ параметру вида для построения графика ядра.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.jointplot(x = 'petal_length',y = 'petal_width',data = df,kind = 'hex') plt.show()

Выход

Рентгеновский

Seaborn – Визуализация парных отношений

Наборы данных при изучении в реальном времени содержат много переменных. В таких случаях следует анализировать отношение между каждой и каждой переменной. Построение двумерного распределения для (n, 2) комбинаций будет очень сложным и длительным процессом.

Чтобы построить несколько попарно двумерных распределений в наборе данных, вы можете использовать функцию pairplot () . Это показывает отношение для (n, 2) комбинации переменной в DataFrame в виде матрицы графиков, а диагональные графики являются одномерными графиками.

Топоры

В этом разделе мы узнаем, что такое оси, их использование, параметры и так далее.

использование

seaborn.pairplot(data,…)

параметры

В следующей таблице перечислены параметры для осей –

Переменная в данных для отображения аспектов графика на разные цвета.

Набор цветов для отображения переменной оттенка

Вид сюжета для неидентификационных отношений.

Вид сюжета для диагональных сюжетов.

Переменная в данных для отображения аспектов графика на разные цвета.

Набор цветов для отображения переменной оттенка

Вид сюжета для неидентификационных отношений.

Вид сюжета для диагональных сюжетов.

За исключением данных, все остальные параметры являются необязательными. Есть несколько других параметров, которые может принять пара . Вышеупомянутые часто используемые параметры.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.set_style("ticks") sb.pairplot(df,hue = 'species',diag_kind = "kde",kind = "scatter",palette = "husl") plt.show()

Выход

мультиграфы

Мы можем наблюдать изменения в каждом сюжете. Графики представлены в матричном формате, где имя строки представляет ось x, а имя столбца представляет ось y.

Диагональные графики представляют собой графики плотности ядра, где другие графики представляют собой графики рассеяния, как упоминалось.

Seaborn – нанесение категорических данных

В наших предыдущих главах мы узнали о точечных диаграммах, шестнадцатеричных диаграммах и диаграммах kde, которые используются для анализа исследуемых непрерывных переменных. Эти графики не подходят, когда исследуемая переменная является категориальной.

Когда одна или обе исследуемые переменные являются категориальными, мы используем такие графики, как striplot (), swarmplot () и т. Д. Seaborn предоставляет интерфейс для этого.

Категориальные точечные диаграммы

В этом разделе мы узнаем о категориальных точечных графиках.

stripplot ()

stripplot () используется, когда одна из изучаемых переменных является категориальной. Он представляет данные в отсортированном порядке по любой из осей.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.stripplot(x = "species", y = "petal_length", data = df) plt.show()

Выход

коробка

На приведенном выше графике мы ясно видим разницу в длине лепестка у каждого вида. Но главная проблема с рассмотренным выше графиком рассеяния состоит в том, что точки на графике рассеяния перекрываются. Мы используем параметр «Джиттер» для обработки такого сценария.

Джиттер добавляет к данным случайный шум. Этот параметр будет регулировать позиции вдоль категориальной оси.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.stripplot(x = "species", y = "petal_length", data = df, jitter = Ture) plt.show()

Выход

точек

Теперь о распределении точек видно легко.

Swarmplot ()

Другой вариант, который можно использовать в качестве альтернативы Jitter, – это функция swarmplot () . Эта функция позиционирует каждую точку графика рассеяния на категориальной оси и таким образом избегает перекрывающихся точек –

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.swarmplot(x = "species", y = "petal_length", data = df) plt.show()

Выход

Оттенки

Сиборн – Распределение наблюдений

На диаграммах разброса по категориям, которые мы рассмотрели в предыдущей главе, подход становится ограниченным в информации, которую он может предоставить о распределении значений в каждой категории. Теперь, пойдя дальше, давайте посмотрим, что может облегчить нам сравнение с категориями.

Коробочные участки

Boxplot – это удобный способ визуализации распределения данных по квартилям.

Коробчатые участки обычно имеют вертикальные линии, идущие от коробок, которые называются усами. Эти усы указывают на изменчивость за пределами верхнего и нижнего квартилей, поэтому графы Box Box также называются диаграммой « коробка с усами» и диаграмма « коробка с усами» . Любые выбросы в данных представлены в виде отдельных точек.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.swarmplot(x = "species", y = "petal_length", data = df) plt.show()

Выход

Сжатый

Точки на графике указывают на выброс.

Сюжеты для скрипки

Графики для скрипки представляют собой комбинацию прямоугольника с оценками плотности ядра. Таким образом, эти графики легче анализировать и понимать распределение данных.

Давайте воспользуемся набором советов, чтобы узнать больше об участках игры на скрипке. Этот набор данных содержит информацию, касающуюся советов, данных клиентами в ресторане.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('tips') sb.violinplot(x = "day", y = "total_bill", data=df) plt.show()

Выход

Этапы

Значения квартилей и усов из коробочного графика показаны внутри скрипки. Поскольку в скрипке используется KDE, более широкая часть скрипки указывает на более высокую плотность, а узкая область представляет относительно более низкую плотность. Межквартильный диапазон в коробчатом графике и более высокая плотность в kde попадают в один и тот же регион каждой категории скрипичного сюжета.

На приведенном выше графике показано распределение total_bill по четырем дням недели. Но, в дополнение к этому, если мы хотим увидеть, как дистрибутив ведет себя по отношению к полу, давайте рассмотрим его в следующем примере.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('tips') sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df) plt.show()

Выход

разница

Теперь мы можем ясно видеть расходное поведение между мужчиной и женщиной. Можно легко сказать, что мужчины смотрят на сюжет больше, чем женщины.

И, если переменная оттенка имеет только два класса, мы можем украсить сюжет, разделив каждую скрипку на две вместо двух скрипок в данный день. Любая часть скрипки ссылается на каждый класс в переменной оттенка.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('tips') sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df) plt.show()

Выход

Multistages

Сиборн – Статистическая оценка

В большинстве ситуаций мы имеем дело с оценками всего распределения данных. Но когда дело доходит до оценки центральной тенденции, нам нужен конкретный способ обобщить распределение. Среднее значение и медиана являются очень часто используемыми методами для оценки центральной тенденции распределения.

На всех графиках, которые мы узнали в предыдущем разделе, мы сделали визуализацию всего дистрибутива. Теперь давайте поговорим о графиках, по которым мы можем оценить центральную тенденцию распределения.

Бар Участок

Barplot () показывает связь между категориальной переменной и непрерывной переменной. Данные представлены в прямоугольных столбцах, где длина столбца представляет долю данных в этой категории.

Гистограмма представляет собой оценку центральной тенденции. Давайте использовать набор данных «Титаник» для изучения графиков.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('titanic') sb.barplot(x = "sex", y = "survived", hue = "class", data = df) plt.show()

Выход

barplot

В приведенном выше примере мы можем видеть, что среднее число выживших мужчин и женщин в каждом классе. Из сюжета мы можем понять, что выжило больше женщин, чем мужчин. Как у мужчин, так и у женщин больше выживших из первого класса.

Особый случай в гистограмме – показать количество наблюдений в каждой категории, а не вычислять статистику для второй переменной. Для этого мы используем countplot ().

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('titanic') sb.countplot(x = " class ", data = df, palette = "Blues"); plt.show()

Выход

Гистограмма

Сюжет говорит, что количество пассажиров в третьем классе выше, чем в первом и втором классе.

Точечные участки

Точечные графики служат так же, как столбчатые, но в другом стиле. Вместо полной полосы значение оценки представляется точкой на определенной высоте на другой оси.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('titanic') sb.pointplot(x = "sex", y = "survived", hue = "class", data = df) plt.show()

Выход

zSymbol

Seaborn – Печать данных в широкой форме

Всегда предпочтительно использовать наборы данных long-from или tidy. Но иногда, когда у нас не остается выбора, а не используется набор данных «широкой формы», те же функции могут также применяться к «широкоформатным» данным в различных форматах, включая фреймы данных Pandas или двумерный NumPy. массивы. Эти объекты должны быть переданы непосредственно параметру данных, переменные x и y должны быть указаны как строки

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.boxplot(data = df, orient = "h") plt.show()

Выход

модели

Кроме того, эти функции принимают векторы объектов Pandas или NumPy, а не переменные в DataFrame.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') sb.boxplot(data = df, orient = "h") plt.show()

Выход

Проекты

Основным преимуществом использования Seaborn для многих разработчиков в мире Python является то, что он может принимать объект DataFrame pandas в качестве параметра.

Seaborn – мультипанельные категориальные сюжеты

Категориальные данные мы можем визуализировать с помощью двух графиков, вы можете использовать либо функции pointplot () , либо функцию фактора более высокого уровня factorplot () .

Factorplot

Factorplot рисует категорический график на FacetGrid. Используя параметр «kind», мы можем выбрать сюжет, такой как boxplot, violinplot, barplot и stripplot. FacetGrid по умолчанию использует точечный график.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('exercise') sb.factorplot(x = "time", y = pulse", hue = "kind",data = df); plt.show()

Выход

Lshape

Мы можем использовать разные графики для визуализации одних и тех же данных с помощью параметра вида .

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('exercise') sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin',data = df); plt.show()

Выход

диез

В factorplot данные наносятся на фасетную сетку.

Что такое Facet Grid?

Фасетная сетка образует матрицу панелей, определяемых строкой и столбцом путем деления переменных. Из-за панелей один участок выглядит как несколько участков. Очень полезно проанализировать все комбинации в двух дискретных переменных.

Представим приведенное выше определение на примере

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('exercise') sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin', col = "diet", data = df); plt.show()

Выход

Два типа

Преимущество использования Facet заключается в том, что мы можем ввести в график еще одну переменную. Приведенный выше график делится на два графика на основе третьей переменной, называемой «диета», с использованием параметра «col».

Мы можем сделать много граней столбцов и выровнять их по строкам сетки –

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('titanic') sb.factorplot("alive", col = "deck", col_wrap = 3,data = df[df.deck.notnull()],kind = "count") plt.show()

выход

различные типы

Сиборн – линейные отношения

В большинстве случаев мы используем наборы данных, которые содержат несколько количественных переменных, и цель анализа часто состоит в том, чтобы связать эти переменные друг с другом. Это можно сделать через линии регрессии.

При построении регрессионных моделей мы часто проверяем мультиколлинеарность, где нам приходилось видеть корреляцию между всеми комбинациями непрерывных переменных, и предпринимаем необходимые действия для удаления мультиколлинеарности, если она существует. В таких случаях помогает следующая техника.

Функции для рисования моделей линейной регрессии

В Seaborn есть две основные функции для визуализации линейных отношений, определенных посредством регрессии. Этими функциями являются regplot () и lmplot () .

регплот против лмплота

regplot lmplot
принимает переменные x и y в различных форматах, включая простые числовые массивы, объекты серии pandas или как ссылки на переменные в DataFrame pandas имеет данные в качестве обязательного параметра, а переменные x и y должны быть указаны в виде строк. Этот формат данных называется «длинные данные»

Давайте теперь нарисуем графики.

пример

Построение regplot и затем lmplot с теми же данными в этом примере

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('tips') sb.regplot(x = "total_bill", y = "tip", data = df) sb.lmplot(x = "total_bill", y = "tip", data = df) plt.show()

Выход

Вы можете увидеть разницу в размере между двумя участками.

Увеличенное изображение и лупа

Мы также можем подогнать линейную регрессию, когда одна из переменных принимает дискретные значения

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('tips') sb.lmplot(x = "size", y = "tip", data = df) plt.show()

Выход

неровный

Подгонка разных видов моделей

Простая модель линейной регрессии, использованная выше, очень проста в подборе, но в большинстве случаев данные являются нелинейными, и вышеуказанные методы не могут обобщить линию регрессии.

Давайте использовать набор данных Анскомба с графиками регрессии –

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('anscombe') sb.lmplot(x="x", y="y", data=df.query("dataset == 'I'")) plt.show()

Пунктирный график

В этом случае данные хорошо подходят для модели линейной регрессии с меньшей дисперсией.

Давайте посмотрим на другой пример, где данные принимают большое отклонение, которое показывает, что линия наилучшего соответствия не является хорошей.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('anscombe') sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'")) plt.show()

Выход

половина

График показывает высокое отклонение точек данных от линии регрессии. Такие нелинейные, более высокого порядка могут быть визуализированы с помощью lmplot () и regplot (). Они могут соответствовать модели полиномиальной регрессии для изучения простых видов нелинейных трендов в наборе данных –

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('anscombe') sb.lmplot(x = "x", y = "y", data = df.query("dataset == 'II'"),order = 2) plt.show()

Выход

парабола

Сиборн – Сетка Граней

Полезный подход для изучения данных среднего размера – рисование нескольких экземпляров одного и того же графика в разных подмножествах вашего набора данных.

Этот метод обычно называют «решетчатым», или «решетчатым» построением, и он связан с идеей «малых кратных».

Чтобы использовать эти функции, ваши данные должны быть в Pandas DataFrame.

Построение небольших кратных наборов данных

В предыдущей главе мы видели пример FacetGrid, в котором класс FacetGrid помогает визуализировать распределение одной переменной, а также взаимосвязь между несколькими переменными по отдельности в подмножествах вашего набора данных с использованием нескольких панелей.

Сетка FacetGrid может быть нарисована с тремя измерениями – строка, столбец и оттенок. Первые два имеют очевидное соответствие с результирующим массивом осей; Подумайте о переменной оттенка как о третьем измерении вдоль оси глубины, где разные уровни изображены разными цветами.

Объект FacetGrid принимает в качестве входных данных фрейм данных и имена переменных, которые будут формировать размеры строки, столбца или оттенка сетки.

Переменные должны быть категориальными, и данные на каждом уровне переменной будут использоваться для фасета по этой оси.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('tips') g = sb.FacetGrid(df, col = "time") plt.show()

Выход

диаграммы

В приведенном выше примере мы только что инициализировали объект facetgrid, который на них ничего не рисует.

Основным подходом для визуализации данных в этой сетке является метод FacetGrid.map () . Давайте посмотрим на распределение подсказок в каждом из этих подмножеств, используя гистограмму.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('tips') g = sb.FacetGrid(df, col = "time") g.map(plt.hist, "tip") plt.show()

Выход

дифференциация

Количество графиков больше одного из-за параметра col. Мы обсуждали параметр col в наших предыдущих главах.

Чтобы создать реляционный график, передайте несколько имен переменных.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('tips') g = sb.FacetGrid(df, col = "sex", hue = "smoker") g.map(plt.scatter, "total_bill", "tip") plt.show()

Выход

соотношение

Seaborn – Парная Сетка

PairGrid позволяет нам нарисовать сетку вспомогательных участков, используя тот же тип графика для визуализации данных.

В отличие от FacetGrid, он использует разные пары переменных для каждого субплота. Он формирует матрицу подзаговоров. Его также иногда называют «матрицей рассеяния».

Использование pairgrid похоже на facetgrid. Сначала инициализируйте сетку, а затем передайте функцию построения графика.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') g = sb.PairGrid(df) g.map(plt.scatter); plt.show()

Variousmodels

Также можно построить другую функцию на диагонали, чтобы показать одномерное распределение переменной в каждом столбце.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') g = sb.PairGrid(df) g.map_diag(plt.hist) g.map_offdiag(plt.scatter); plt.show()

Выход

Точки гистограммы

Мы можем настроить цвет этих графиков, используя другую категориальную переменную. Например, набор данных радужной оболочки имеет четыре измерения для каждого из трех различных видов цветов радужной оболочки, чтобы вы могли увидеть, как они отличаются.

пример

import pandas as pd import seaborn as sb from matplotlib import pyplot as plt df = sb.load_dataset('iris') g = sb.PairGrid(df) g.map_diag(plt.hist) g.map_offdiag(plt.scatter); plt.show()

Выход

цветной

Мы можем использовать другую функцию в верхнем и нижнем треугольниках, чтобы увидеть разные аспекты отношений.

Введение в seaborn

Seaborn — библиотека для визуализации данных в Python, которая тесно интегрируется со структурами данных из pandas. Seaborn является высокоуровневой надстройкой над библиотекой matplotlib и позволяет строить разнообразные статистические графики с меньшими усилиями и за меньшее количество строк кода. В этом и заключается ключевое преимущество seaborn — её интерфейс позволяет сосредоточиться на том, что мы хотим визуализировать на графиках, а не на том, как их строить. Это отлично согласуется с философией Python!

Начнём с установки, это можно сделать через pip или conda, используя команды в терминале:

pip install seaborn

Также установить модуль можно прямо в jupyter-ноутбуке, добавив символ «!» к команде терминала:

!pip install seaborn

Теперь импортируем библиотеку, используя общепринятое сокращение sns:

import seaborn as sns

Для примеров визуализации будем использовать датасеты penguins, titanic и diamonds, которые уже есть внутри seaborn. Импортировать их можно так:

penguins = sns.load_dataset('penguins') penguins.head()
titanic = sns.load_dataset('titanic') titanic.head()
diamonds = sns.load_dataset('diamonds') diamonds.head()

Статистическая визуализация

seaborn.relplot() — метод, который позволяет строить графики для визуализации отношений между двумя переменными. Параметр kind, отвечающий за вид графика, по умолчанию имеет значение «scatter». Если его не изменить, то на выходе получится обычный scatterplot, или диаграмма рассеяния.

Визуализируем зависимость длины клюва от массы пингвина:

sns.relplot(data=penguins, x="bill_length_mm", y="body_mass_g")

Если мы установим параметр kind равным «line», то получим линейную диаграмму. Если передать в параметр «hue» категориальную переменную, то график разобьётся на несколько линий, которые будут окрашены в разные цвета в соответствии с принадлежностью к определённой категории.

Визуализируем зависимость длины крыльев от массы и добавим разбиение по полу пингвинов:

sns.relplot(data=penguins, x="flipper_length_mm", y="body_mass_g", kind="line", hue='sex')

Визуализация распределений

sns.displot() — вид графиков, отражающих распределение переменной.

По умолчанию параметр kind имеет значение «hist», поэтому получаем диаграмму распределения возраста пассажиров Титаника с разбиением на классы кают:

sns.displot(titanic, x="age", hue="class")

Если мы установим kind=»kde», то получим кривую плотности распределения вероятностей, основанной на методе ядерной оценки плотности. По горизонтальной оси расположены значения переменной, а по вертикальной оси — оценка плотности распределения.

Посмотрим на график KDE цены бриллиантов с разбивкой по качеству их огранки:

sns.displot(diamonds, x="price", hue="cut", kind="kde")

Если мы передадим в sns.displot() сразу две переменные, то получим двумерную гистограмму или, другими словами, heatmap.

Тепловая карта соотношения длины и глубины клюва пингвинов:

sns.displot(penguins, x="bill_length_mm", y="bill_depth_mm")

sns.jointplot — очень красивый вариант визуализации, который есть только в библиотеке seaborn. Этот график отображает зависимости между двумя переменными с двумерными и одномерными визуализациями. Если мы не будем задавать аргумент kind, то получим диаграмму рассеяния между двумя переменными и отдельные кривые плотности (основанные на ядерной оценке) по осям x и y. На jointplot также можно добавить разбивку по категориям, указав параметр hue.

Корреляция длины и глубины клюва пингвинов с разбивкой по их видам:

sns.jointplot( data=penguins, x="bill_length_mm", y="bill_depth_mm", hue="species" )

Визуализация категориальных данных

sns.catplot() — метод, позволяющий визуализировать данные с разбивкой по категориям. Catplot может пригодиться, если есть необходимость отразить на одном графике зависимость непрерывной переменной сразу от нескольких категориальных переменных. По умолчанию получаем scatterplot — распределение массы пингвинов в зависимости от их вида и острова проживания:

sns.catplot(data=penguins, x="island", y="body_mass_g", hue="species")

Если установим kind=»box», то получим знакомый нам boxplot. Если ящик с усами получается очень узким, можно отфильтровать выбросы, чтобы график получился более наглядным.

Распределение стоимости билета с разбивкой на выживших и невыживших пассажиров:

sns.catplot( data=titanic[titanic['fare'] < 120], x="survived", y="fare", kind="box" )

Ещё один очень красивый график — violin plot (скрипичная диаграмма). Violin plot — это небольшие boxplot с добавлением по бокам кривых плотности ядра с каждой стороны.

Seaborn позволяет строить её очень просто, используя метод sns.catplot() и параметр kind="violin".

Построим скрипичный график распределения длины клюва пингвинов с разбивкой по виду и полу:

sns.catplot( data=penguins, x="sex", y="bill_length_mm", hue="species", kind="violin", height=6 )

Чтобы построить обычный countplot — столбчатую диаграмму, отражающую количество объектов в каждой категории — нужно установить параметр kind="count".

Количество пингвинов на разных островах:

sns.catplot(data=penguins, x="island", kind="count")

Для построения barplot нужно установить параметр kind="bar". Столбцы на графике пропорциональны величинам, которые они отображают.

Посмотрим на зависимость цвета и веса бриллиантов в каратах:

sns.catplot(data=diamonds, x="color", y="carat", kind="bar")

Последний вид диаграммы, которую позволяет строить sns.catplot(), — это pointplot. Pointplot похож на barplot, если мысленно дорисовать столбцы до каждой точки, но вместо столбцов график отображает точечную оценку категорий и строит доверительный интервал.

Для его построения достаточно передать в sns.catplot() аргумент kind="point".

Построим зависимость выживаемости пассажиров «Титаника» от их пола и дополнительно разобьём график по полу пассажиров и классам кают:

sns.catplot(data=titanic, x="sex", y="survived", hue="class", kind="point")

Мы познакомились с основными типами графиков в seaborn и убедились, что библиотека действительно упрощает работу и позволяет строить красивые многокомпонентные диаграммы в одну строчку кода.

Ещё больше красивых графиков и вариантов их построения вы можете найти в документации seaborn.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *