我正在尝试改进facet_grid 图形中一个简单但重要的细节。
我使用了facet_grid()函数的比例和空间参数。但我想仅增加底部面的高度,以便能够读取图表中被截断的样本计数(以红色突出显示)。参见图 1。 使用的代码是:
ggplot(salm_data, aes(x=SALM) ) + geom_bar(stat = "count", position = position_dodge())
+ facet_grid(YEAR ~ TYPE, scales = "free_x", space = "free")
+ geom_text(size=2.5, stat = "count", aes(label = after_stat(count)), vjust = -0.3) +theme_bw() + labs(y="Number of samples") +
theme(panel.grid.minor = element_blank())+
labs(x=expression(paste(italic("Klebsiella spp."), " ")))
图像 1: Image1
为了尝试克服这个“问题”,我尝试添加下一个代码来放大 Y 轴:
scale_y_continuous(breaks = seq(from = 0, to = 300, by = 40))
但我无法改善这种情况(参见图2)。
图像 2: Image2
你能帮我想出一些办法来克服这种情况吗?
提前感谢您的帮助/评论,
魔法师
最佳答案
网格图形使您能够修改 ggplot()
对象的宽度
和高度
。
示例代码:
library(grid)
gg = ggplot(salm_data, aes(x=type) ) +
geom_bar(stat = "count", position = position_dodge())+
facet_grid(year ~ type, scales = "free_x", space = "free")+
geom_text(size=2.5, stat = "count", aes(label = after_stat(count)), vjust = -0.3) +
theme_bw() +
labs(y="Number of samples") +
theme(panel.grid.minor = element_blank())+
labs(x=expression(paste(italic("Klebsiella spp."), " ")))
gt = ggplot_gtable(ggplot_build(g))
gt$widths[7] = 4*gt$widths[7] # modify panel-1-2 and panel-2-2
gt$heights[7] = 4*gt$heights[7] #modify panel-1-2 and panel-2-2
grid.draw(gt)
示例图:
salm_data<-structure(list(type = c("A", "B", "C", "D", "A", "B", "C", "D",
"A", "B", "C", "D", "A", "C", "A", "B", "C", "D", "A", "B", "C",
"D", "A", "B", "C", "D", "A", "C", "A", "B", "C", "D", "A", "B",
"C", "D", "A", "B", "C", "D", "A", "C", "A", "B", "C", "D", "A",
"B", "C", "D", "A", "B", "C", "D", "A", "C", "A", "B", "C", "D",
"A", "B", "C", "D", "A", "B", "C", "D", "A", "C", "A", "B", "C",
"D", "A", "B", "C", "D", "A", "B", "C", "D", "A", "C", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A"
), year = c(2001, 2001, 2001, 2001, 2001, 2002, 2001, 2002, 2001,
2002, 2001, 2002, 2002, 2002, 2001, 2001, 2001, 2001, 2001, 2002,
2001, 2002, 2001, 2002, 2001, 2002, 2002, 2002, 2001, 2001, 2001,
2001, 2001, 2002, 2001, 2002, 2001, 2002, 2001, 2002, 2002, 2002,
2001, 2001, 2001, 2001, 2001, 2002, 2001, 2002, 2001, 2002, 2001,
2002, 2002, 2002, 2001, 2001, 2001, 2001, 2001, 2002, 2001, 2002,
2001, 2002, 2001, 2002, 2002, 2002, 2001, 2001, 2001, 2001, 2001,
2002, 2001, 2002, 2001, 2002, 2001, 2002, 2002, 2002, 2001, 2001,
2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001, 2001,
2001, 2001, 2001, 2001)), class = "data.frame", row.names = c(NA,
-112L))
关于r - 仅更改一个面(行)的facet_grid()高度是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71528148/