На этом шаге мы рассмотрим назначение и примеры использования этой функции.
Функция pointplot() отображает оценку какого-либо набора данных как точку на поле графика и доверительный интервал в виде линии, центр которой лежит на указанной точке.
Демонстрацию будем проводить на наборе данных dots:
dots = sns.load_dataset("dots")
Построим диаграмму pointplot, в качестве категориального признака выберем align, оценку будем считать по firing_rate:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd dots = sns.load_dataset("dots") sns.pointplot(x='align', y='firing_rate', data=dots) plt.show()
Рис.1. Диаграмма pointplot
Как вы можете видеть из рисунка: среднее значение firing_rate для align=dots приблизительно равно 40.25, для align=sacc составляет 39.1. Получим точные значения этих величин:
print(dots[dots["align"]=='dots']['firing_rate'].mean()) 40.231249481220054 print(dots[dots["align"]=='sacc']['firing_rate'].mean()) 39.083297066051415
Вертикальными линиями обозначен 95% доверительный интервал.
Добавим ещё один уровень разделения - по признаку choice, выделим его с помощью параметра hue:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd dots = sns.load_dataset("dots") sns.pointplot(x='align', y='firing_rate', hue='choice', data=dots) plt.show()
Рис.2. Демонстрация разделения данных с помощью параметра hue функции pointplot()
Изменим цветовую палитру:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns import pandas as pd dots = sns.load_dataset("dots") sns.pointplot(x='align', y='firing_rate', hue='choice', palette='GnBu', data=dots) plt.show()
Рис.3. Демонстрация изменения цветовой палитры с помощью параметра palette функции pointplot()
За алгоритм вычисления оценки отвечает параметр estimator, через который задаётся функция расчёта статистики, принимающая вектор и возвращающая скалярное значение. Построим диаграммы с различным способом определения оценки:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns from numpy import mean, median, min, max dots = sns.load_dataset("dots") estimator = [mean, median, min, max] plt.figure(figsize=(15, 5)) for i, es in enumerate(estimator): plt.subplot(1, len(estimator), i + 1) plt.title(es.__name__) sns.pointplot(x='align', y='firing_rate', estimator=es, data=dots) plt.show()
Рис.4. Демонстрация работы с параметром estimator функции pointplot()
На следующем шаге мы закончим изучение этого вопроса.