R中的一个图中的多重泰勒图

问题描述

我试图在同一taylor diagram上为每个data.frame (i.e.,Precipitation,Max_Temp,and Min_temp)绘制figure。每个data.frame都有一个ref observation表示的model outputs(A1,G2,and G3)。任何帮助将不胜感激。

library(tidyverse)
library(plotrix)

set.seed(123)

precipitation <- data.frame(Ref = runif(730,1,5),A1 = runif(730,8),G2 = runif(730,2,6),G3 = runif(730,7)) 
Max_Temp <-  data.frame(Ref = runif(730,-5,30),-8,32),-2,28),-10,25))
Min_Temp <-  data.frame(Ref = runif(730,-20,-25,10),-15,10))

我尝试用代码绘制降水图,但出现错误

precipitation %>% 
  pivot_longer(names_to = "Models",values_to = "values",-Ref) %>% 
  taylor.diagram(Ref,values,col = Models)

我想要一个像下面的图

enter image description here

解决方法

我不确定您的样本数据是否会产生您期望的图,但是您可以尝试过滤每个模型的数据框,并使用add = TRUE选项将点覆盖在同一图上。另外,我认为explosion pipe会有所帮助(%$%,而且我刚刚得知它实际上在docs中称为“博览会管道”:

library(tidyverse)
library(plotrix)
library(magrittr)

set.seed(123)
precipitation <- data.frame(Ref = runif(730,1,5),A1 = runif(730,8),G2 = runif(730,2,6),G3 = runif(730,7)) 
Max_Temp <-  data.frame(Ref = runif(730,-5,30),-8,32),-2,28),-10,25))
Min_Temp <-  data.frame(Ref = runif(730,-20,-25,10),-15,10))

precipitation %>% 
  pivot_longer(names_to = "Models",values_to = "values",-Ref) %>% 
  filter(Models == "A1") %$%
  taylor.diagram(Ref,values,col = "blue",pch = 1)

precipitation %>% 
  pivot_longer(names_to = "Models",-Ref) %>% 
  filter(Models == "G2") %$%
  taylor.diagram(Ref,col = "red",pch = 2,add = TRUE)

precipitation %>% 
  pivot_longer(names_to = "Models",-Ref) %>% 
  filter(Models == "G3") %$%
  taylor.diagram(Ref,col = "green",pch = 3,add = TRUE)

example_2.png