r - كيفية تغيير النظام من بوكسلوتس عند استخدام ggplot2؟




boxplot r-factor (2)

لقد قبلت بالفعل (على ما يرام تماما) الحل، ولكن هنا خيار آخر باستخدام relevel() . أنا لست متأكدا لماذا كان لا يعمل بالنسبة لك؟

#default plot
ggplot(df2, aes(variable, value)) + geom_boxplot()

#Reverse reverse!
df2$variable2 <- with(df2, relevel(variable, "vph.shr"))
ggplot(df2, aes(variable2, value)) + geom_boxplot()

ويأتي هذا السؤال من هذا السؤال الآخر. لم أتمكن من تنفيذ الإجابات هناك.

حدد:

df2 <- data.frame(variable=rep(c("vnu.shr","vph.shr"),each=10),
        value=seq(1:20))

قطعة:

require(ggplot2)
qplot(variable,value, data=df2,geom="boxplot")+
geom_jitter(position=position_jitter(w=0.1,h=0.1))

وأود أن يكون لها بوكسلوتس في ترتيب عكسي (على سبيل المثال واحد في اليمين على اليسار وهلم جرا).

لقد حاولت طرق مختلفة relevel ترتيب العوامل باستخدام levels ، ordered ، relevel ، rev وهلم جرا، ولكن أنا ببساطة لا يمكن أن يبدو للحصول على حق بناء الجملة.


هل جربت هذا:

df2$variable <- factor(df2$variable,
    levels = c('vph.shr','vnu.shr'),ordered = TRUE)

أنا فقط اختار أمر هناك، منذ يتم تكوين نظام بلدي بشكل مختلف قليلا مما كنت أظن، لذلك بلدي 'ترتيب الافتراضي' قد تختلف. ولكن يمكنك فقط تبديل موقف المستويات عند تحديدها.

وهناك عدد قليل من الخيارات الأخرى، تعتمد على أذواقك:

لمجرد عكس ترتيب الحالي:

factor(df2$variable,levels = rev(levels(df2$variable)),ordered = TRUE)

أو يمكنك استخدام الإعداد الفرعي لتحديد ترتيب معين إذا كنت لا تريد كتابة كل مستوى باليد:

factor(df2$variable,levels = levels(df2$variable)[1:2],ordered = TRUE)




r-factor