ggplot2 中类似栅格的时间序列图

Raster-like timeseries graph in ggplot2

我正在尝试使用 ggplot2.

重新创建一张类似此处的图表

如果我使用 coord_equal 弄乱点的大小和形状,我可以非常接近,但是...

示例数据和代码
library(ggplot2)
df <- data.frame()
Years <- 1990:2020
for(i in 1:length(Years)) {
  Year <- Years[i]
  week <-1:52
  value <- sort(round(rnorm(52, 50, 30), 0))
  df.small <- data.frame(Year = Year, week = week, value = value)
  df <- bind_rows(df, df.small)
}


ggplot(df, aes(week, Year, color = value)) +
  geom_point(shape = 15, size = 2.7) +
  scale_color_gradientn(colours = rainbow(10)) +
  coord_equal()

问题是,

我想用我的真实数据 "stretch" 图表,这样我可以更清楚地看到它(我的时间序列更短),当我不使用 coord_equal 时,方块不会填充绘图区:

ggplot(df, aes(week, Year, color = value)) +
  geom_point(shape = 15, size = 2.7) +
  scale_color_gradientn(colours = rainbow(10))

这就像使用 geom_raster geom 一样简单吗?

ggplot(df, aes(week, Year)) +
  geom_raster(aes(fill = value)) +
  scale_fill_gradientn(colours = rainbow(10)) +
  coord_equal()