我正在尝试使用ggplot2创建一个热图,其中每个水平行是一个变量随时间变化的单个主题的值。但是,我也想在治疗任务中对受试者进行分组。当我尝试使用facet_grid时,所有方面都包含y轴上的每个主题编号,而不是仅包含分配给该特定处理的主题。请考虑以下示例:
library(tidyverse)
subject <- rep(paste0("Subj", 1:6), 3)
trt <- rep(c("A", "B"), 9)
week <- rep(1:3, each = 6)
value <- sample.int(10, size = 18, replace = TRUE)
df <- data_frame(subject, trt, week, value)
ggplot(df, aes(x = week, y = subject, fill = value)) +
facet_grid(trt ~ .) +
geom_tile()
这创建了两个面板,分别命名为trt A&amp; B,但每个小组包含主题1-6。我想看一下A组中的主题1,3,5(仅)和B组中的主题2,4,6。
R很新,所以任何帮助都将非常感谢!非常感谢。
答案 0 :(得分:3)
你的意思是这样吗?
ggplot(df, aes(x = week, y = subject, fill = value)) +
facet_grid(trt ~ ., scales = "free") +
geom_tile()
详情见scales
中的参数?facet_grid
。