以下是一个示例数据框,其中有30个唯一样本(ID为1至30),每个样本都有三个测量值(在三个不同的阈值(“G1”列)下;5e-03、5e-05、5e-08)。每个观测值都有一个p值(P列)。最后,每个样本都可能属于十个不同的类别('G2')[很抱歉使用了这么多数字变量!]
我可以使用以下命令生成漂亮的条形图;
而且这样做是不正确的。当我在G2上进行面孔时,它会在每个面孔中绘制所有样本。这很丑陋,因为每个样本只能属于一个G2类别。如何生成第二个面孔,仅绘制属于该组的条形图?我尝试调整facet_grid中的“drop”,“scale”和“space”变量,但没有改善。
# example data.frame
df <- data.frame(
'ID' = as.character(unlist(lapply(seq(1:30), function(x) rep(x,3)))),
'P' = runif(n = 90, min = 0, max = 1),
'G1' = as.character(c('5e-03','5e-05','5e-08')),
'G2' = as.character(unlist(lapply(sample(1:10, size = 30, replace = T), function(x) rep(x,3))))
)
我可以使用以下命令生成漂亮的条形图;
ggplot(df, aes(x = interaction(ID,G2), y = P, fill = G2)) +
geom_bar(stat = 'identity') +
coord_flip() +
facet_grid(. ~ G1)
展示如下:
不过,我真正希望实现的是双面板;列上的'G1'(与当前情况相同),并且不使用条形颜色来标记'G2'变量,而是在G2上添加第二个水平面板。我已尝试过如下操作:
ggplot(df, aes(x = interaction(ID,G2), y = P, fill = G2)) +
geom_bar(stat = 'identity') +
coord_flip() +
facet_grid(G2 ~ G1)
而且这样做是不正确的。当我在G2上进行面孔时,它会在每个面孔中绘制所有样本。这很丑陋,因为每个样本只能属于一个G2类别。如何生成第二个面孔,仅绘制属于该组的条形图?我尝试调整facet_grid中的“drop”,“scale”和“space”变量,但没有改善。
这 就是我要找的 - 我已经手动在图形的部分上画了矩形,应该在面孔中。它本质上与Plot 1相同,只是将条形图拆分为G2面孔。
paste(ID, G2, sep = ".")
- zx8754