【问题标题】:Including bias in the taylor diagram在泰勒图中包括偏差
【发布时间】:2015-12-03 12:21:40
【问题描述】:

我正在模拟 LST 并将其与 MODIS 数据进行比较。为了比较不同的模拟,我想使​​用泰勒图。我可以使用plotrix 中的R 为不同的模拟制作基本的泰勒图。但是,有没有办法在图表中包含偏差?我尝试了以下操作; Adding bias in Taylor diagram in R。 但是我的身材看起来像

我对@9​​87654326@ 比较陌生,所以如果有人能在这方面帮助我,那就太好了。

另外,在进行一些搜索时,我遇到了另一种表示偏见的方式,如

是否可以在 plotrix 中绘制带有这样偏差的泰勒图?我发现这个选项更好,因为我有多个模型要比较,如果我为每个偏差绘制向量和线,图就会变得混乱。

【问题讨论】:

    标签: r plotrix


    【解决方案1】:

    以下代码说明了一种使用偏差作为颜色来创建绘图的方法。必须为每个模型计算偏差(在代码中分配任意值)。在此之后,可以创建偏差的调色板,然后根据该模型的偏差颜色箱为每个点(模型)分配颜色。可以使用该模型的特定颜色单独绘制点(模型)。可以在最后添加偏差的颜色条。

    library(plotrix) # for taylor diagram
    library(RColorBrewer) # for color palette
    
    # setting random number generator
    set.seed(10)
    
    # fake some reference data
    ref<-rnorm(30,sd=2)
    
    model1<-ref+rnorm(30)/2 # add a little noise for model1
    model2<-ref+rnorm(30) # add more noise for model2
    model3<-ref+rnorm(30)*1.1 # add more noise for model3
    model4<-ref+rnorm(30)*1.5 # add more noise for model4
    
    # making up bias values for each model
    bias1 <- 0.5
    bias2 <- -1
    bias3 <- 0.9
    bias4 <- -0.25
    
    # making color values
    num_cols <- 8 # number of colors for bias
    cols <- brewer.pal(num_cols,'RdYlGn') # making color palette, many other palettes are available
    
    # making vector of color breaks
    # breaks define the regions for each color
    min_bias <- -1 # minimum bias
    max_bias <- 1 # maximum bias
    col_breaks <- seq(min_bias,max_bias,(max_bias - min_bias)/(num_cols))
    
    # assigning colors based on bias
    # color index assigned based on the value of the bias
    col1 <- cols[max(which( col_breaks <= bias1))]
    col2 <- cols[max(which( col_breaks <= bias2))]
    col3 <- cols[max(which( col_breaks <= bias3))]
    col4 <- cols[max(which( col_breaks <= bias4))]
    
    # display the diagram and add points for each model
    # use color assigned for each model for that model's point
    taylor.diagram(ref,model1,col=col1)
    taylor.diagram(ref,model2,col=col2,add=T)
    taylor.diagram(ref,model3,col=col3,add=T)
    taylor.diagram(ref,model4,col=col4,add=T)
    
    # adding color bar
    color.legend(3.5,0,4,2 # coordinates
                 ,(col_breaks[1:(length(col_breaks)-1)]+col_breaks[2:length(col_breaks)])/2 # legend values (mean of color value)
                 ,rect.col=cols # colors
                 ,gradient='y' # vertical gradient
                 )
    

    【讨论】:

    • 感谢@Calvin Whealton。尝试了测试数据,效果很好!
    猜你喜欢
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 2014-09-19
    • 2015-11-23
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多