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))
在您的问题中,您明确告诉 ggplot2
在 x=measured
和 y=simulated
处添加 label=RMSE
。要在左上角添加标签,您可以使用 x=-Inf
和 y=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)
使用这个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))
在您的问题中,您明确告诉 ggplot2
在 x=measured
和 y=simulated
处添加 label=RMSE
。要在左上角添加标签,您可以使用 x=-Inf
和 y=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)