文件
计算强度
的最大值即可。或者您可以输入自定义限制,如下所示。set.seed(1)
n <- 1e3
peakDF <- data.frame(Mass = rnorm(n, 500, 50),
Intensity = runif(n, 0, 10),
file = sample(letters[1:4], n, TRUE),
fragment = sample(letters[1:6], n, TRUE))
peakDF$fragment[1:(n/2)] <- NA
ggplot(peakDF, aes (Mass, Intensity)) +
geom_line()+
facet_grid(file ~ fragment, scales = "free")
使用 na.omit
并更改 file == 'a'
的上限。ggplot(na.omit(peakDF), aes (Mass, Intensity)) +
geom_line()+
facet_grid(file ~ fragment, scales = "free") +
geom_blank(data = data.frame(Mass = Inf,
fragment = 'a',
file = 'a',
Intensity = 15))
您可以同时添加多个控件。在您的情况下,您可以通过文件获取所有NA
的最大值,并使用该汇总数据框。ggplot(na.omit(peakDF), aes (Mass, Intensity)) +
geom_blank(data = data.frame(Mass = rep(Inf, 4),
fragment = rep('a', 4),
file = c('a', 'a', 'c', 'd'),
Intensity = c(15, -5, 50, -5))) +
geom_line()+
facet_grid(file ~ fragment, scales = "free")
这也适用于x轴或者同时适用于x轴和y轴。如果没有您的数据,要准确地完成这个任务是很困难的,但一个选项是将其转换为gtable
对象,然后只需削减掉您不想要的额外列。
我的示例代码将使用R内置的mtcars
。
library(ggplot2)
library(gtable)
p<-ggplot(mtcars, aes(wt, hp)) + geom_point()+ facet_grid(cyl ~ carb, scales = "free")
gt<-ggplot_gtable(ggplot_build(p))
grid.draw(gt)
使用Trimgt2<-gt[,-14]
grid.draw(gt2)
你可以看到,使用修剪,我们只是删掉了我们不需要的最后一列(第14列,其中包含8气缸图)。要找出要修剪哪一列,可以执行以下操作:gtable_show_layout(gt)