子集化数据会改变ggplot2中的几何大小

问题描述 投票:0回答:1

我正在尝试在完整数据集上绘制数据的子集,如下所示:

一旦子集包含多于一行,子集图块的大小就会与完整数据集图块的大小不匹配。

df <- data.frame(
  position = 1:10,
  year = 2000,
  id = c("D", "A", "C", "A", "A", "B", "A", "C", "B", "A")
  )

ggplot(df, aes(x = factor(year), y = position)) +
  geom_tile() +
  geom_tile(data = subset(df, id == "B"), fill = "red")

在我实际的、更大的数据集中,我使用相同的代码来显示其他子集,没有任何问题(即所有图块的大小相同)。当子集包含少量项目时,似乎会出现调整大小问题。

是规模问题吗?我尝试过在 geom_tile 中手动设置宽度和高度,但这似乎没有任何效果。

r ggplot2 subset geom-tile
1个回答
0
投票

我确信有更优雅的 ggplot 答案,但我过去通过简单地使用 和

ifelse
语句作为
fill
:

做过类似的事情
ggplot(df, aes(x = factor(year), y = position, fill = ifelse(id == "B", "red", "grey"))) +
  geom_tile() +
  scale_fill_identity()

enter image description here

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.