dt <- data.table(x = c(1, 2, 3, 4, 5),
                 y = c("a_x", "b_w", "b_x", "b_y", "b_z"),
                 gr = c("a", "b", "b", "b", "b"))
dt


ggplot(dt, aes(x = x, y = y, fill = x)) + 
  geom_tile() +
  facet_grid(rows = vars(gr),  scales = "free")

我的实际代码稍微复杂一些(每个框都填满了热图),但我面临的主要问题是(如此代码所示),当不同的"GR"具有不同的行数时,来自不同Y组的每行的高度都会发生变化.即使每个"GR"中有不同的行,我如何强制它们相同,tks!

推荐答案

问题是,每个面板将具有相同的高度,瓷砖的高度将进行调整,以适应面板的完整高度.因此,对于行数较少的组,瓷砖的高度将较大.相反,您可以添加space="free_y",这样每个面板的高度将根据行数进行调整,并且每行瓷砖将具有相同的高度:

library(ggplot2)

ggplot(dt, aes(x = x, y = y, fill = x)) +
  geom_tile() +
  facet_grid(
    rows = vars(gr),
    space = "free_y", 
    scales = "free_y"
  )

R相关问答推荐

有没有方法将paste 0功能与列表结合起来?

基于shiny 应用程序中的日期范围子集xts索引

如何使用`ggplot2::geom_segment()`或`ggspatial::geom_spatial_segment()`来处理不在格林威治中心的sf对象?

使用tidyverse方法绑定行并从一组管道列表执行左连接

在"gt"表中添加第二个"groupname_col",而不连接列值

如何直接从R中的风险分数计算c指数?

在R中为马赛克图中的每个字段着色

Select 季度月值

为什么我使用geom_density的绘图不能到达x轴?

优化从每个面的栅格中提取值

以不同于绘图中元素的方式对GG图图例进行排序

R中时间间隔的大向量与参考时间间隔的相交

SHILINY中DT列的条件着色

填充图例什么时候会有点?

如何调整一个facet_work()面板内的框图和移动标签之间的水平宽度?

生存时间序列的逻辑检验

禁用时,SelecizeInput将变得不透明

如何在刻面和翻转堆叠条形图中对齐geom_text()

分隔日期格式为2020年7月1日

子样本间系数检验的比较