小面网格导致 R 中不同的行高

问题描述 投票:0回答:1
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!

r ggplot2 plot heatmap facet-grid
1个回答
0
投票

问题是每个面板都具有相同的高度,并且图块的高度将调整以适合面板的整个高度。因此,对于行数较少的组,图块将具有较大的高度。相反,您可以添加

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"
  )

© www.soinside.com 2019 - 2024. All rights reserved.