Вступление
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'
.
Теперь вместо количества, которое мы видели раньше, нам будет представлена плотность записей:
{.ezlazyload}
Изменить размер бункера распределительной площадки с помощью Seaborn
Иногда нам не подходят автоматические размеры корзины. Они слишком большие или слишком маленькие. По умолчанию размер выбирается на основе наблюдаемого разброса данных, но иногда он не может отличаться от того, что мы хотели бы выявить.
В нашем сюжете они слишком маленькие и неудобно размещены с промежутками
между ними. Мы можем изменить размер бункера, установив binwidth
для
каждого бункера или задав количество bins
:
data = df['release_year']
sns.displot(data, binwidth = 3)
plt.show()
Таким образом, каждая ячейка будет охватывать данные за 3 года:
{.ezlazyload}
Или мы можем установить фиксированное количество bins
:
data = df['release_year']
sns.displot(data, bins = 30)
plt.show()
Теперь данные будут упакованы в 30 ячеек, и в зависимости от диапазона вашего набора данных это будет либо много ячеек, либо действительно небольшое количество:
{.ezlazyload}
Еще один отличный способ избавиться от неудобных пробелов - установить
для discrete
аргумента значение True
:
data = df['release_year']
sns.displot(data, discrete=True)
plt.show()
Это приводит к:
{.ezlazyload}
Распределение графиков с помощью KDE
Обычный график для построения рядом с гистограммой - это график оценки плотности ядра. Они гладкие, и вы не теряете никакой ценности, собирая диапазоны значений в ячейки. Вы можете установить большее значение ячейки, наложить график KDE поверх гистограммы и отобразить всю необходимую информацию на экране.
К счастью, поскольку это было действительно обычным делом, Seaborn
позволяет нам построить график KDE, просто установив для аргумента kde
True
:
data = df['release_year']
sns.displot(data, discrete = True, kde = True)
plt.show()
Теперь это приводит к:
{.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 :
{.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.
Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.