我正在努力改进我的facet_grid图形中一个简单但重要的细节.

我使用了facet_grid()函数的比例和空间参数.但我想增加底部刻面的高度only for,以便能够读取图中截取的样本数(以红色突出显示).参见图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."), " ")))

Image 1: Image1

为了克服这个"问题",我try 加入下一个代码来放大Y轴:

scale_y_continuous(breaks = seq(from = 0, to = 300, by = 40))

但我无法改善这种情况(参见图2).

Image 2: Image2

你能帮我解决这个问题吗?

感谢您的帮助/ comments ,

魔法

推荐答案

网格图形使您可以修改ggplot()个对象中的widths个和heights个.

示例代码:

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)

样地:

enter image description here Sample data:

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相关问答推荐

如何正确使用' programme::programme_bar$Message()'?

为什么predicate.lm给出的是一个长度与我解析的数据集不同的载体?

基于2行删除重复项指定每列要执行的操作

在R中,将一个函数作为输入传递给另一个函数时进行参数判断

在水平条形图中zoom x_轴

使用格式化程序自定义hc_tooltip以添加textColor删除了我的标记并try 将它们带回失败

使用na.locf在长格式数据集中输入具有多个时间点的数据集

R中的枢轴/转置

从多个前置日期中获取最长日期

如何在R中正确对齐放射状图中的文本

如何自定义Shapviz图?

pickerInput用于显示一条或多条geom_hline,这些线在图中具有不同 colored颜色

将数据集中的值增加到当前包含的最大值

在df中保留原始变量和新变量

R—将各种CSV数字列转换为日期

如何指定我的函数应该查找哪个引用表?

使用RSelenium在R中抓取Reddit时捕获多个标签

R -如何分配夜间GPS数据(即跨越午夜的数据)相同的开始日期?

为什么我对圆周率图的蒙特卡罗估计是空的?

将统计检验添加到GGPUBR中的盒图,在R