Я хотел был бы сравнить набор распределений баллов (score
), сгруппированных по некоторым категориям (centrality
) и покрашенного каким-либо другим (model
). Я попытался следующим с Сиборном:Тонкая настройка seaborn.boxplot
plt.figure(figsize=(14,6))
seaborn.boxplot(x="centrality", y="score", hue="model", data=data, palette=seaborn.color_palette("husl", len(models) +1))
seaborn.despine(offset=10, trim=True)
plt.savefig("/home/i11/staudt/Eval/properties-replication-test.pdf", bbox_inches="tight")
Есть некоторые проблемы, я с этим сюжетом:
- Существует большое количество выпадающих и мне не нравится, как они нарисованы здесь , Могу ли я удалить их? Могу ли я изменить внешний вид, чтобы показать меньше беспорядка? Могу ли я покрасить их по крайней мере так, чтобы их цвет соответствовал цвету коробки?
- Значение
model
original
является особенным, потому что все остальные распределения следует сравнивать с распределениемoriginal
. Это должно быть визуально отражено в сюжете. Могу ли я сделатьoriginal
первым ящиком каждой группы? Можно ли каким-то образом компенсировать или пометить его по-другому? Можно ли провести горизонтальную линию через медиану каждого распределенияoriginal
и через группу ящиков? - Некоторые значения
score
очень малы, как сделать правильное масштабирование оси y, чтобы показать их?
EDIT:
Вот пример с лог-масштабируется оси у - тоже еще не идеальна. Почему некоторые коробочки кажутся обрезанными на нижнем конце?
Синие выбросы являются ошибкой matplotlib, и их можно избежать, обновив свой морской океан. Но я, конечно, не просто удалял бы выбросы! – mwaskom
Вы пробовали [log-scaling] (http://stanford.edu/~mwaskom/software/seaborn/examples/horizontal_boxplot.html) переменную y? – mwaskom
@mwaskom Да, но это «сжимает» решетки больших значений в верхней части графика. Есть ли компромисс, т. Е. Логарифмический масштаб только для части оси? – clstaudt