По телефону geom_violin
в пределах ggplot2
вы можете указать, что площадь каждой скрипки должна быть пропорциональна количеству наблюдений, составляющих эту скрипку, указав scale="count"
.Для geom_violin, как указана общая площадь всех скрипок?
Я предполагаю, что это действует внутренне, взяв некоторое количество площади (назовем это количество X) и разделив ее пропорционально между всеми скринами, которые будут построены. Это то, что я хочу, за исключением того, что это может привести к довольно узким скрипкам, если между N существует существенное несоответствие между группами, так что некоторые группы имеют относительно низкий N. В моем случае это просто делает вид заливки трудным для восприятия.
Я думаю, что это может быть в значительной степени разрешено, по крайней мере, в моем случае, просто расширив X немного, чтобы на действительно маленьких скрипках было достаточно места, чтобы по-прежнему быть читаемым. Другими словами, Я хочу сохранить вариацию в области между скрипками в соответствии с количеством наблюдений, но увеличить «пул» общей площади, разделяемый между скрипками, так что каждый становится немного больше.
У кого-нибудь есть идеи, как это можно осуществить? Для этого нужно быть переключателем. Я пытался суетиться с аргументами geom_violin
такие как width
, size
, violinwidth
, и такие, но не повез до сих пор ...
EDIT: Код для скучных, но воспроизводимых данных «образца» установить, что можно экспериментировать с ,
y = runif(100, 1, 10)
x = as.factor(rep(c(1,2), times=50))
z = as.factor(c(rep(1, 10), rep(2, 90)))
df=data.frame(x, y, z)
ggplot(df, aes(x=x, y=y, fill=z)) + geom_violin(scale="count")
Просьба представить небольшой воспроизводимый пример, облегчающий тестирование потенциальных решений. – Roland
Добавил что-то скучное, но, надеюсь, достаточно образцовое, чтобы быть полезным. – Bajcz
@Bajcz Вы нашли решение? –