如何从 facet_plot 中提取单个地块并保持缩放比例?

How to extract single plots from facet_plot and maintain scaling?

从一个长格式的数据帧中,下面的第一个绘图调用给了我这个欢乐图矩阵:13 个场景中的每一个都有一个脊线和色标。

但是,当我尝试每页只显示一个图时,在下面的循环 'SingleScenario' 绘图调用中,缩放是针对每个场景最小值和最大值的单个数据子集完成的(每个图都有完整的黄色到紫色色阶,我不确定脊高色阶是否保留或重置)。

如何将单个场景绘制为单页并保持原始缩放比例?这样,通过向下翻阅 13 页的 pdf 可以看到差异。

这是我的代码:

library(ggplot2)
library(viridis)

matrix <- ggplot(df, aes(watermonth, as.integer(wateryear), height = inflow, group=as.integer(wateryear)
           , fill=cumWYinf))  + geom_ridgeline(stat = "identity",
          show.legend = F, scale = 0.005, alpha = 0.8) + facet_wrap(~scenario, nr=4, nc=4) +
          scale_fill_viridis() 


scenarios <- c("q0", "e1", "e2", "e3", "e4", "e5", "cwc30", "l1", "l2", "l3", "l4", "l5", "cwc70")

for(i in 1:length(scenarios)) {

facets <- c(paste0(scenarios[i]))

SingleScenario <- ggplot(df[df$scenario %in% facets,], aes(watermonth, as.integer(wateryear),
      height = inflow, group=as.integer(wateryear), fill = cumWYinf)) +
      geom_ridgeline(stat = "identity", show.legend = F, scale = 0.005, alpha = 0.9) +
      + facet_wrap(~scenario, nr=1, nc=1) + scale_fill_viridis() 

SingleScenario
ggsave(paste(scenarios[i],".pdf"), dpi = 300, width = 17, height = 11, units = "in") }

谢谢。

 date        watermonth wateryear inflow scenario SacWYT SJRWYT cumWYinf
  <date>           <dbl>     <dbl>  <dbl>    <chr>  <int>  <int>    <dbl>
1 1921-10-31          1      1922  66.38       q0      2      2  2293.78
2 1921-11-30          2      1922  50.65       q0      2      2  2293.78
3 1921-12-31          3      1922  82.09       q0      2      2  2293.78

如果没有示例数据集来测试我的预测,很难回答,但是你可以尝试调整填充 limits = ...:

scale_fill_viridis(limits = range(df$cumWYinf))

这样所有的地块都会有相同的比例。