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