r - 如何在ggplot2中按组为facet_grid着色?
问题描述
这是一个例子:
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)
解决方案
数据
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)
编辑:评论中澄清后的方法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()
s。
警告:正如其他人指出的那样,有一些方法可以制作你的情节风格,但这些方法非常混乱。上述解决方案简单明了,但显然只能填充包含数据的方面。
推荐阅读
- windows - 在 Windows 的隐私设置下创建自定义屏幕
- json.net - JSON.net:当节点有点时获取 JToken 的路径?
- python - Python:生成条形码并计算重复的 PDF 表单
- sql - 使用 sp_readerror 从多个服务器 SQL Server 2012 创建 SQL Server 错误日志
- javascript - 停止正在运行的 asyc 函数
- python - 将 numpy 数组存储为 PyTables 单元格元素
- jquery - jQuery load() 只执行 1 行?
- javascript - Vue.js $scopedSlots 不适用于 Vue 实例
- scala - 在Scala中将函数的函数作为参数传递
- ios - 仅停止 firebase 推送通知振动