In einem Anruf an geom_violin
innerhalb ggplot2
können Sie angeben, dass die Fläche jeder Violine proportional zur Anzahl der Beobachtungen, die diese Violine bilden, durch Angabe scale="count"
.Für geom_violin, wie ist die Gesamtfläche aller Violinen angegeben?
Ich gehe davon aus, dass dies intern funktioniert, indem man eine Gesamtfläche (nennen wir diese Menge X) nimmt und sie proportional auf alle zu plottenden Violinen aufteilt. Das ist, was ich will, außer dass dies zu ziemlich schmalen Violinen führen kann, wenn die N Unterschiede zwischen den Gruppen beträchtlich genug sind, so dass einige Gruppen ein relativ niedriges N haben. In meinem Fall macht dies die Füllfarbe nur schwer zu sehen.
Ich denke, dass dies in meinem Fall zumindest weitgehend gelöst werden kann, indem X einfach ein wenig erweitert wird, so dass die wirklich kleinen Geigen gerade genug Platz bekommen, um noch lesbar zu sein. Mit anderen Worten, Ich möchte die Variation in der Fläche zwischen Geigen nach der Anzahl der Beobachtungen beibehalten, aber den "Pool" der Gesamtfläche vergrößern, die unter Violinen aufgeteilt wird, so dass jeder etwas größer wird.
Hat jemand eine Idee, wie man das erreichen könnte? Dafür muss es einen Schalter geben. Ich habe versucht Getue mit den Argumenten geom_violin
wie width
, size
, violinwidth
, und so, aber kein Glück so weit ...
EDIT: Code für ein langweiliges, aber reproduzierbare „Probe“ Daten eingestellt, dass ein Experimentieren mit .
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")
Bitte geben Sie ein kleines reproduzierbares Beispiel an, um mögliche Lösungen zu testen. – Roland
Hinzugefügt etwas langweilig aber hoffentlich vorbildlich genug, um nützlich zu sein. – Bajcz
@Bajcz Haben Sie schon eine Lösung gefunden? –