gpt4 book ai didi

r - 如何在 ggplot2 中按组为 facet_grid 着色?

转载 作者:行者123 更新时间:2023-12-02 08:04:53 24 4
gpt4 key购买 nike

这是一个例子:

library(ggplot2)
set.seed(123)
df<-data.frame(sid=letters[1:8],
groups=rep(1:4, each=2),
blp=abs(rnorm(8, 120, 5)),
bmi=abs(rnorm(8, 25, 5)),
gender=rep(c("F", "M"), each=4))

ggplot(df, aes(bmi, blp))+
geom_point(size=2)+
facet_grid(sid~groups)

我想要的是根据性别为 sid 着色。一个理想的数字是: enter image description here

最佳答案

数据

library(ggplot2)
set.seed(123)
df<-data.frame(sid=letters[1:8],
groups=rep(1:4, each=2),
blp=abs(rnorm(8, 120, 5)),
bmi=abs(rnorm(8, 25, 5)),
gender=rep(c("F", "M"), each=4))

方法一

ggplot(df, aes(bmi, blp, color = gender))+
geom_point(size=2)+
facet_grid(sid~groups)

enter image description here

编辑:在评论中澄清后的方法2

ggplot(df, aes(bmi, blp, color = gender))+
geom_point(size=2)+
facet_grid(sid~groups)+
geom_rect(data=subset(df, gender == "F"),
aes(xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf),
fill="red", alpha=0.2)+
geom_rect(data=subset(df, gender == "M"),
aes(xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf),
fill="blue", alpha=0.2)

一个更简单的解决方案是 + geom_rect(aes(xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf, fill = gender), alpha=0.2) 而不是两个 geom_rect()

enter image description here

警告:正如其他人所指出的,有多种方法可以实现您的情节风格,但这些方法非常困惑。上述解决方案简单明了,但显然只能填充包含数据的切面。

关于r - 如何在 ggplot2 中按组为 facet_grid 着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52668135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com