Сиборн - Распределение наблюдений
В категориальных диаграммах разброса, которые мы рассматривали в предыдущей главе, подход становится ограниченным в информации, которую он может предоставить о распределении значений внутри каждой категории. Теперь, идя дальше, давайте посмотрим, что может облегчить нам выполнение сравнения по категориям.
Коробчатые графики
Boxplot - удобный способ визуализировать распределение данных по квартилям.
Коробчатые диаграммы обычно имеют вертикальные линии, отходящие от прямоугольников, которые называются усами. Эти усы указывают на изменчивость за пределами верхнего и нижнего квартилей, поэтому прямоугольные диаграммы также называютсяbox-and-whisker сюжет и box-and-whisker диаграмма. Любые выбросы в данных отображаются в виде отдельных точек.
пример
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()
Вывод
Точки на графике указывают на выброс.
Сюжеты для скрипки
Графики скрипки представляют собой комбинацию прямоугольной диаграммы с оценками плотности ядра. Таким образом, эти графики легче анализировать и понимать распределение данных.
Давайте воспользуемся набором данных советов, призванным больше узнать о скрипичных сюжетах. Этот набор данных содержит информацию, относящуюся к советам, которые дают клиенты в ресторане.
пример
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill", data=df)
plt.show()
Вывод
Значения квартилей и усов из коробчатой диаграммы показаны внутри скрипки. Поскольку в сценарии скрипки используется KDE, более широкая часть скрипки указывает на более высокую плотность, а узкая область представляет собой относительно более низкую плотность. Межквартильный диапазон в прямоугольной диаграмме и часть более высокой плотности в kde попадают в одну и ту же область каждой категории скрипичного сюжета.
На приведенном выше графике показано распределение total_bill по четырем дням недели. Но, в дополнение к этому, если мы хотим увидеть, как распределение ведет себя в отношении пола, давайте рассмотрим его в примере ниже.
пример
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df)
plt.show()
Вывод
Теперь мы можем ясно увидеть соотношение расходов мужчин и женщин. Мы можем легко сказать, что мужчины платят больше, чем женщины, глядя на сюжет.
И, если переменная оттенка имеет только два класса, мы можем украсить сюжет, разделив каждую скрипку на две вместо двух скрипок в определенный день. Любая часть скрипки относится к каждому классу в переменной оттенка.
пример
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df)
plt.show()