На этом шаге мы рассмотрим назначение и примеры использования этой функции.
Функция distplot() предназначена для визуализации распределений одномерных наборов данных. Диаграмма, которую она строит, может состоять из следующих компонентов:
Эти компоненты являются опциональными: вы можете выбрать, какой набор функций использовать.
Рассмотрим наиболее важные параметры функции distplot():
Построим набор данных для экспериментов и визуализируем его:
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. Диаграмма с добавлением распределения
На следующем шаге мы закончим изучение этого вопроса.