【发布时间】:2020-07-27 02:42:01
【问题描述】:
我想生成一个包含 3 个类别的分类数据点图,以显示三个类别中每个类别的个体数量。我希望第一个类别(“类型”)位于 y 轴上,水平线分隔每种类型,点堆叠在线上,第二个类别(性别)位于 x 轴上,第三个类别( disease) 作为填充颜色。
我无法让点正确分组或堆叠,当我让它们正确分组时,它们都在一个太高的长列中,所以我希望这些点最多堆叠到五个点,然后继续一个新的列。
这里是重现数据的代码:
df1 <- data.frame(sex="female", disease="yes", type="B")
df2 <- data.frame(sex="female", disease="yes", type="C")
df3 <- data.frame(sex="female", disease="no", type="B")
df4 <- data.frame(sex="male", disease="yes", type="A")
df5 <- data.frame(sex="male", disease="yes", type="B")
df6 <- data.frame(sex="male", disease="yes", type="C")
df7 <- data.frame(sex="male", disease="no", type="A")
df8 <- data.frame(sex="male", disease="no", type="B")
df9 <- data.frame(sex="male", disease="no", type="C")
df10 <- data.frame(sex="male", disease="no", type="D")
df2 <-df2[rep(nrow(df2), each = 3), ]
df3 <-df3[rep(nrow(df3), each = 29), ]
df5 <-df5[rep(nrow(df5), each = 3), ]
df8 <-df8[rep(nrow(df8), each = 35), ]
df9 <-df9[rep(nrow(df9), each = 7), ]
df.all<-rbind(df1, df2, df3, df4, df5, df6, df7, df8, df9, df10)
这是我目前所拥有的,但是点堆叠的方向错误并且重叠,我希望它们是五个点的堆叠。:
g<-ggplot(data=df.all)+
geom_dotplot(aes(x=sex, y=type, fill=disease),
binaxis= "y",
stackgroups = F,
dotsize = 1,
stackdir = "up",
)
g
【问题讨论】: