Распределение Сиборна / график гистограммы - Учебное пособие и примеры

Введение Seaborn - одна из наиболее широко используемых библиотек визуализации данных в Python как расширение Matplotlib. Он предлагает простой, интуитивно понятный, но настраиваемый API для визуализации данных. В этом уроке мы рассмотрим, как построить график распределения в Seaborn. Мы расскажем, как построить график распределения с помощью Seaborn, как изменить размеры бункеров на графике распределения, а также построить графики оценки плотности ядра поверх них и отобразить данные распределения вместо

Вступление

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

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

Импортировать данные

Мы будем использовать набор данных Netflix Shows и визуализировать распределения оттуда.

Давайте импортируем Pandas и загрузим в набор данных:

 import pandas as pd 
 
 df = pd.read_csv('netflix_titles.csv') 

Как построить участок распределения с Seaborn?

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

Эти типы kdeplot() KDE (kdeplot ()) и histplot() ). И то, и другое может быть достигнуто с помощью общей функции displot() или с помощью их соответствующих функций.

Примечание. Начиная с Seaborn 0.11, distplot() превратилось в displot() . Если вы используете старую версию, вам также придется использовать старую функцию.

Начнем строить.

Постройте гистограмму / график распределения (дисплот) с помощью Seaborn

Давайте продолжим и импортируем необходимые модули и сгенерируем гистограмму / график распределения .

Мы визуализируем распределение функции release_year , чтобы увидеть, когда Netflix был наиболее активным с новыми дополнениями:

 import matplotlib.pyplot as plt 
 import pandas as pd 
 import numpy as np 
 import seaborn as sns 
 
 # Load the data 
 df = pd.read_csv('netflix_titles.csv') 
 # Extract feature we're interested in 
 data = df['release_year'] 
 
 # Generate histogram/distribution plot 
 sns.displot(data) 
 
 plt.show() 

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

гистограммаграфик{.ezlazyload}

Постройте график распределения с информацией о плотности с помощью Seaborn

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

Давайте displot() чтобы это изменить:

 # Extract feature we're interested in 
 data = df['release_year'] 
 
 # Generate histogram/distribution plot 
 sns.displot(data, stat = 'density') 
 
 plt.show() 

Единственное, что нам нужно изменить, - это предоставить stat и сообщить ему, что мы хотели бы видеть плотность, а не 'count' .

Теперь вместо количества, которое мы видели раньше, нам будет представлена плотность записей:

гистограмма информация о плотностиseaborn{.ezlazyload}

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

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

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

 data = df['release_year'] 
 
 sns.displot(data, binwidth = 3) 
 
 plt.show() 

Таким образом, каждая ячейка будет охватывать данные за 3 года:

изменить размер бункера гистограммыseaborn{.ezlazyload}

Или мы можем установить фиксированное количество bins :

 data = df['release_year'] 
 
 sns.displot(data, bins = 30) 
 
 plt.show() 

Теперь данные будут упакованы в 30 ячеек, и в зависимости от диапазона вашего набора данных это будет либо много ячеек, либо действительно небольшое количество:

номер ячейки гистограммыseaborn{.ezlazyload}

Еще один отличный способ избавиться от неудобных пробелов - установить для discrete аргумента значение True :

 data = df['release_year'] 
 
 sns.displot(data, discrete=True) 
 
 plt.show() 

Это приводит к:

гистограмма дискретных данныхseaborn{.ezlazyload}

Распределение графиков с помощью KDE

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

К счастью, поскольку это было действительно обычным делом, Seaborn позволяет нам построить график KDE, просто установив для аргумента kde True :

 data = df['release_year'] 
 
 sns.displot(data, discrete = True, kde = True) 
 
 plt.show() 

Теперь это приводит к:

построить гистограмму с помощью kdeseaborn{.ezlazyload}

Земельный участок Совместное распределение с Seaborn

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

Сделаем совместный jointplot() :

 df = pd.read_csv('netflix_titles.csv') 
 df.dropna(inplace=True) 
 
 sns.jointplot(x = "rating", y = "release_year", data = df) 
 
 plt.show() 

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

Здесь мы создали график гистограммы для функции рейтинга , а также график гистограммы для функции release_year :

совместный график гистограммыseaborn{.ezlazyload}

Мы видим, что большинство добавленных записей - это TV-MA , однако есть также много записей TV-14, так что есть хороший выбор шоу для всей семьи.

Заключение

В этом руководстве мы рассмотрели несколько способов построения графика распределения с использованием 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.

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

comments powered by Disqus