Фон
Допустим, у меня есть следующий набор данных:
import pandas as pd
import numpy as np
data = ([["Cheese", x] for x in np.random.normal(0.8, 0.03, 10)] +
[["Meat", x] for x in np.random.normal(0.4, 0.05, 14)] +
[["Bread", 0.8], ["Bread", 0.65]])
df = pd.DataFrame(data, columns=["Food", "Score"])
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks", color_codes=True)
sns.set_context("paper")
sns.catplot(x="Score", y="Food", kind="box", data=df)
, который дает следующий график (или аналогичный, в зависимости от сгенерированных случайных чисел):
Причина, по которой я собираюсь получить коробочные графики с моими фактическими данными, заключается в том, что отдельные точки в сочетании с количеством категорий, которые я хочу показать, делают график визуально слишком шумным и коробки дают хороший общий обзор того, как распределяются данные, и это то, что мне нужно. Однако проблема заключается в таких категориях, как категория «Хлеб».
Вопрос
Как вы можете заметить, морские раки производили коробки со срединными, квартилями и т. Д. c. для всех трех категорий. Однако, поскольку категория «Хлеб» имеет только две точки данных, использование блочного графика для этой категории на самом деле не является подходящим представлением. Я бы предпочел эту категорию только в виде отдельных точек.
Но, если посмотреть на примеры на https://seaborn.pydata.org/tutorial/categorical.html, единственное предложение по объединению коробчатых графиков и простые точки - это построить оба для всех категорий, что не является тем, что мне нужно.
Вкратце: Как я могу отобразить категориальные данные с seaborn, выбрав соответствующее представление для каждой категории?