R中的分段图中的不同间隔颜色

Jua*_*chi 3 r lattice

我需要创建一个具有三个段颜色的segplot:一个用于间隔低于1,一个用于间隔优于1,另一个用于包含1的间隔.

df <- read.table(header=T, text='
             geno       n   rd  lower upper
             A7002      7 1.12   0.94  1.30
             ANTA82RR  12 1.00   0.91  1.09
             BR05-83097 5 0.84   0.41  1.27
             BR05-86275 5 0.64   0.25  0.93
             BRM04-1660 7 1.26   1.02  1.50
             BRN03-1404 5 1.03   0.88  1.18
             BRN05-0656 5 0.57   0.47  0.67
             ')

library(latticeExtra)

segplot(reorder(factor(geno), rd)  ~ lower + upper,
    data = df, 
    xlim=c(-1, 2.5),
    draw.bands = FALSE, centers = rd,
    panel = function (x,y,z,...){
    panel.segplot(x,y,z,...)
    panel.abline(v=1,lty=3)
    }
 ) 
Run Code Online (Sandbox Code Playgroud)

提前致谢.

MrF*_*ick 5

出于某种原因segplot似乎并不groups=像大多数格子图那样尊重参数.这是一个混乱的工作,第一步是生成分组变量

df$group<-with(df, ifelse(lower>1, "superior", ifelse(upper<1, "inferior","contain")))

segplot(reorder(factor(geno), rd)  ~ lower + upper,
    data = df, 
    groups=group,
    xlim=c(-1, 2.5),
    draw.bands = FALSE, centers = rd,
    panel = function(...) {
        panel.abline(v=1,lty=3)
        panel.superpose(...)
    },
    panel.groups = function (x,y,z,subscripts,col,col.line,centers,...){
        panel.segplot(x,y,z[subscripts],centers=centers[subscripts],subscripts=T,
            col=col.line,...)
    }
 ) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述