简体   繁体   English

GGPLOT2; 如何在分类变量中绘制两个不同组的组平均线

[英]ggplot2; how to draw group mean lines of two different groups in a categorical variable

I have a following set of data; 我有一组以下数据;

    V1 V2  V3
 1: G1 P1 82.7
 2: G2 P1 64.6
 3: G2 P1 81.2
 4: G2 P1 95.3
 5: G1 P1 80.0
 6: G2 P1   NA
 7: G2 P1 65.0
 8: G1 P1 83.8
 9: G1 P1 88.0
10: G1 P1 66.9
11: G1 P1 56.8
12: G1 P2 65.1
13: G2 P2 57.7
14: G2 P2 60.4
15: G2 P2 18.6
16: G1 P2 41.2
17: G2 P2 47.0
18: G2 P2 37.1
19: G1 P2 18.8
20: G1 P2 47.9
21: G1 P2 40.0
22: G1 P2 54.3

I made the following plot by using ggplot2; 我使用ggplot2制作了以下图表;

ggplot(a,aes(x=V2,y=V3))+
    geom_jitter(aes(group=V1,color=V1,na.rm=T), position =position_jitterdodge())+
    stat_summary(fun.y="mean",geom="crossbar", 
             mapping=aes(ymin=..y.., ymax=..y..), width=1)

在此输入图像描述

V1 contains two categorial variable, P1 and P2 and within them, there are two subcategories, G1 and G2. V1包含两个分类变量P1和P2,其中有两个子类别G1和G2。 What I like to do is to generate the plot with mean lines of G1 and G2 but the code above gives me the mean of categorical variables, P1 and P2. 我喜欢做的是用G1和G2的平均线生成图,但上面的代码给出了分类变量P1和P2的平均值。

I'd really appreciate any help on this. 我真的很感激你的帮助。

Thanks. 谢谢。

Move color=V1 to aes() of ggplot() to have different colors for crossbars and aldo add postion_dodge() to stat_summary() . color=V1移动到ggplot() aes()以使交叉开关具有不同的颜色,并且aldo将postion_dodge()添加到stat_summary()

ggplot(a,aes(x=V2,y=V3,color=V1))+
  geom_jitter(aes(group=V1,na.rm=T), position =position_jitterdodge())+
  stat_summary(fun.y="mean",geom="crossbar", 
               mapping=aes(ymin=..y.., ymax=..y..), width=1,
               position=position_dodge(),show.legend = FALSE)

在此输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM