Я пытаюсь визуализировать набор данных, используя библиотеку seaborn, но на сгенерированных коробочных диаграммах я вижу много пустых слотов.
Данные организованы в четыре столбца: Cat1 | Cat2 | Cat3 | Value
Cat1
, Cat2
и Cat3
все содержат категориальные значения, а значение Value - образец значения, связанного с конфигурацией категорий. Данные приводятся в порядок, поэтому каждая конфигурация категорий может повторяться для разных значений. Примером фрейма данных (с вымышленными значениями) может быть:
Cat1 Cat2 Cat3 Value
A x 1 1.00
A x 1 1.05
A x 2 1.00
A x 2 1.05
A y 1 1.00
A y 1 1.05
A y 2 1.00
A y 2 1.05
B y 1 1.00
B y 1 1.05
B y 2 1.00
B y 2 1.05
A z 1 1.00
A z 1 1.05
A z 2 1.00
A z 2 1.05
B z 1 1.00
B z 1 1.05
B z 2 1.00
B z 2 1.05
Я пытался построить данные с помощью функции [seaborn catplot] [(https://seaborn.pydata.org/generated/seaborn.catplot.html)] 1 (как видно из фрагмента ниже)
import seaborn as sns
g = sns.catplot(data=df, x="Cat1", y="Value", hue="Cat3", col="Cat2", kind="box", notch=True, legend=False).set_titles("{col_name}")
plt.show()
Из данных должно быть ясно, что для x (в Cat2) только A являетсяразрешено и нет данных для B. Тем не менее, визуализированный блок-график показывает пустой интервал для B в субпотеке x (см. этот график морского побережья, показывающий пустой интервал для блок-графика в первом субплоте )
Как я могу свернуть эти пустые слоты (реальные данные содержат несколько таких экземпляров), в идеале, при этом все еще имея возможность использовать функцию catplot (или аналогичную). До сих пор я пытался передать ключевые слова sharex=False
и facet_kws={"dropna":True}
, но ни один из них не имел ожидаемого эффекта.