كيف يمكن للمرء أن يتغلب على نقاط تداخل دون ارتعاش أو شفافية في GGPLOT2
-
21-09-2019 - |
سؤال
بدأت في استخدام GGPLOT2. لدي بعض البيانات الحبيبية الصغيرة (حوالي 30 أو نحو ذلك) مع الكثير من التداخل. لا تهرب ولا ألفا (الشفافية) مناسبة. بدلاً من ذلك ، يقوم StripChart مع Stack و Offset بذلك بشكل أفضل ، لكنني لا أعرف كيفية القيام بذلك في GGPLOT2. هل تعرف؟
لمعرفة ما يجب أن تنقر على النتيجة النهائية على هذا رسم.
هذا هو البرنامج النصي الذي استخدمته قبل بضع سنوات.
stripchart(SystData$DayTo1Syst~SystData$strain,vertical=TRUE,method="stack",pch=19,offset=.3,xlab="Strain",main="Rapidity of Systemic Disease Onset",ylab="Days post inoculation")
المحلول
# your data
df <- data.frame(gp = rep(LETTERS[1:5], each =8), y = sample(1:4,40,replace=TRUE))
# calculate offsets
df <- ddply(df, .(y, gp), transform, offset = (1:length(gp)-1)/20)
qplot(gp, y, data=df) + stat_identity(aes(as.numeric(gp)+offset)) + theme_bw()
نصائح أخرى
يمكنك استخدام position_dodge
.
df <- data.frame(gp = rep(LETTERS[1:5], each =8),
y = sample(1:4,40,replace=TRUE))
qplot(gp,y,data=df,order=y,position=position_dodge(width=0.5))
تريد استخدامها geom_dotplot من GGPLOT2
ربما تريد استخدام:
ggplot(insert your arguments here) + geom_dotplot(binaxis = "y", stackdir = "center")
أتمنى أن يساعدك هذا. ستبدو النتائج نظيفة حقًا وهو ما أعتقد أنه تريده.
لا تنتمي إلى StackOverflow