ggplot2:将两个模型的 RMSE 值添加到每个方面

ggplot2: add RMSE values of two models to each facet

使用这个data.frame

数据

#import_data
df <- read.csv(url("https://www.dropbox.com/s/1fdi26qy4ozs4xq/df_RMSE.csv?raw=1"))

和这个脚本

library(ggplot2)
ggplot(df, aes( measured, simulated, col = indep_cumulative))+
  geom_point()+
  geom_smooth(method ="lm", se = F)+
  facet_grid(drain~scenario)

我得到了这个情节

我想在每个方面的左上角为两个模型(独立和累积;仅两个值)中的每一个添加 RMSE

我试过了

geom_text(data = df , aes(measured, simulated, label= RMSE))

它导致 RMSE 值被添加到构面中的每个点。

如果您能帮助我将两个 RMSE 值仅添加到每个面的左上角,我将不胜感激。

如果您想在每个方面绘制两个数字,您需要做一些数据准备以避免文本重叠。

library(dplyr)
df <- df %>%
  mutate(label_vjust=if_else(indep_cumulative == "accumulative",
                             1, 2.2))

在您的问题中,您明确告诉 ggplot2x=measuredy=simulated 处添加 label=RMSE。要在左上角添加标签,您可以使用 x=-Infy=Inf。所以代码将如下所示:

ggplot(df, aes(measured, simulated, colour = indep_cumulative)) +
  geom_point() +
  geom_smooth(method ="lm", se = F) +
  geom_text(aes(x=-Inf, y=Inf, label=RMSE, vjust=label_vjust),
            hjust=0) +
  facet_grid(drain~scenario)