R 点图中的标记值范围

R 点图中的标记值范围,r,lattice,R,Lattice,我有以下数据框 ds <- data.frame(iso2c=as.factor(c(rep("AR",3),rep("BR",3),rep("DE",3),rep("US",3))), region= as.factor(c(rep("LATAM",6),rep("DEVELOPED",6))), year= rep(c(1979,1989,1999),4), value= c( 47.0 , 28

我有以下数据框

   ds <- data.frame(iso2c=as.factor(c(rep("AR",3),rep("BR",3),rep("DE",3),rep("US",3))),

             region= as.factor(c(rep("LATAM",6),rep("DEVELOPED",6))),

             year= rep(c(1979,1989,1999),4),

             value= c( 47.0 , 28.6,  20.8, 100.0,  64.2,  35.4,  16.0 ,  9.0,   5.5,  15.6,  11.6,   8.6))                 )
我想在整个数值范围内(从countrie的最大值到countries的最小值)为每个国家画一条线。我不能使用“type=h”,因为它将绘制从最大到零的线,而不是从最大到最小的线。
有什么建议吗?谢谢

我想这就行了。我计算了“y”值组中x值的最大值和最小值,然后使用lattice-
lsegments
函数

dotplot(iso2c~value, groups=year, data=ds, panel = function(x,y,...) { 
                           x0=sapply( split(x,y), min)
                           y0=as.numeric(unique(y) )+.1
                           x1=sapply( split(x,y) ,max)
                           y1=as.numeric(unique(y)) +.1
           panel.dotplot(x, y,...)
           lsegments(x0,y0,x1,y1)
                           } ,
       pch=19,col="dark blue",cex=1.3,ylab="country")

谢谢,效果很好,我刚刚在panel函数中添加了“…”参数,并调用了panel.dotplot.Good idea。对于我来说,困难的方面是如何正确安排线段端点的数据,这是在多次失败的努力之后才出现的。我一直试图在向参数传递值的过程中这样做,但只有在调用
lsegments
之前尝试这样做时才取得成功。使用“下标”或“组”不起作用,因为实际上只有一组下标,并且所有点都在单个面板中绘制。
dotplot(iso2c~value, groups=year, data=ds, panel = function(x,y,...) { 
                           x0=sapply( split(x,y), min)
                           y0=as.numeric(unique(y) )+.1
                           x1=sapply( split(x,y) ,max)
                           y1=as.numeric(unique(y)) +.1
           panel.dotplot(x, y,...)
           lsegments(x0,y0,x1,y1)
                           } ,
       pch=19,col="dark blue",cex=1.3,ylab="country")