Шаг 125.
Язык Python. Визуализация данных.
Библиотека Seaborn. Визуализация распределений в данных. Функция distplot()

    На этом шаге мы рассмотрим назначение и примеры использования этой функции.

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

    Эти компоненты являются опциональными: вы можете выбрать, какой набор функций использовать.

    Рассмотрим наиболее важные параметры функции distplot():

a: Series, 1D-массив или список.
Набор данных для построения диаграммы может быть структурой Series, либо одномерным массивом.

bins: int, список, str, None, optional
Количество бинов для функции hist() библиотеки Matplotlib.

hist: bool, optional
Если параметр равен True, то гистограмма будет отображена на поле графика, если равен False, то нет.

kde: bool, optional
Если параметр равен True, то диаграмма KDE (результат работы функции kdeplot()) будет отображена на поле графика, если равен False, то нет.

rug: bool, optional
Если параметр равен True, то результат работы функции rugplot() будет отображён на поле графика, если равен False, то нет.

    Построим набор данных для экспериментов и визуализируем его:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

np.random.seed(123)
x = np.random.chisquare(2, 500)
sns.distplot(x)

plt.show()
Архив с файлом можно взять здесь.


Рис.1. Демонстрация работы функции distplot()

    Построим pandas.Series на базе х и передадим полученный объект в distplot():

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

np.random.seed(123)
x = np.random.chisquare(2, 500)
s = pd.Series(x)
sns.distplot(s)

plt.show()
Архив с файлом можно взять здесь.


Рис.2. Демонстрация работы функции distplot() с аргументом типа pandas.Series

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

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

np.random.seed(123)
x = np.random.chisquare(2, 500)
s = pd.Series(x)

bs = [None, 1, 3, 5, 15]
plt.figure(figsize=(15, 5))
for i, b in enumerate(bs):
    plt.subplot(1, len(bs), i + 1)
    plt.title(f"bins = {b}")
    sns.distplot(s, bins=b)

plt.show()
Архив с файлом можно взять здесь.


Рис.3. Демонстрация работы с параметром bins функции distplot()

    Для того чтобы убрать с диаграммы гистограмму, присвойте параметру hist значение False:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

np.random.seed(123)
x = np.random.chisquare(2, 500)
s = pd.Series(x)
sns.distplot(s, hist=False)

plt.show()
Архив с файлом можно взять здесь.


Рис.4. Диаграмма без гистограммы

    За отображение графика ядерной оценки плотности отвечает параметр kde:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

np.random.seed(123)
x = np.random.chisquare(2, 500)
s = pd.Series(x)
sns.distplot(s, kde=False)

plt.show()
Архив с файлом можно взять здесь.


Рис.5. Диаграмма без kde

    Добавим на диаграмму результат работы rugplot():

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

np.random.seed(123)
x = np.random.chisquare(2, 500)
s = pd.Series(x)
sns.distplot(s, rug=True)

plt.show()
Архив с файлом можно взять здесь.


Рис.6. Диаграмма с добавлением распределения

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг