0

我使用 Lattice 包中的轮廓图函数生成了一个填充轮廓图。我希望能够强调由该函数产生的轮廓线之一,例如通过更改 lwd=2,并不强调产生的其他轮廓线,例如通过将剩余的轮廓线颜色设置为灰色。

例如,我想相当于添加

contourplot(
Male ~ Year * Age, 
data=this.ds, region=F, labels=F, lwd=2, at=c(0, 0.01, 1))

contourplot(
Male ~ Year * Age, 
data=this.ds, 
region=T, col.regions=rev(heat.colors(200)), 
cuts=50, main="", sep="") 

我认识到答案可能涉及函数更新、面板和/或层(如果使用 latticeExtra),但我对 lattice 对象的底层逻辑/结构的理解不足以弄清楚该怎么做。

编辑

谢谢你的帮助。我基本上使用了第一个答案,但进行了以下轻微修改,以便能够指出轮廓线上的几个特征:

require(lattice)
require(latticeExtra)

Part1 <- contourplot(Female ~ Year * Age, 
                     data=this.ds,
                     region=T, 
                     col.regions=rev(heat.colors(200)),
                     cuts=50, 
                     main="", 
                     labels=F,
                     col="grey",
                     sep="")

Part2 <- contourplot(Female ~ Year * Age,
                     data=this.ds,
                     region=F,
                     labels=F,
                     lwd=2,
                     at=c(0, 0.01, 1),
                     panel=function(...){
                     panel.contourplot(...)
                      panel.segments(x0=c(1840, 1900, 2000, 1840), 
                                     x1=c(1900, 1900, 2000, 2000), 
                                     y0=c(40.5, 0, 0, 64), 
                                     y1=c(40.5, 40.5, 64, 64), 
                                     lty="dashed")
                     }                    
)


Plot.Final <- Part1+ Part2 

print(Plot.Final)
4

2 回答 2

2

加载 latticeExtra 库。然后:

Part1<-contourplot(
    Male ~ Year * Age, 
    data=this.ds, 
    region=T, col.regions=rev(heat.colors(200)), 
    cuts=50, main="", sep="")

Part2<-contourplot(
    Male ~ Year * Age, 
    data=this.ds, region=F, labels=F, lwd=2, at=c(0, 0.01, 1))

Plot.Final<-Part1+Part2

这应该按照您的意愿组合图表。如果需要,您可能需要设置 xlim、ylim 和标签,以便一切正常。

于 2013-08-22T13:41:16.267 回答
0

使用contour而不是contourplot.

bar<-matrix(runif(100,nrow=10))
contour(bar)
contour(bar,levels = 0.2, lwd=3, add=TRUE)

编辑:原来你甚至不需要这样做。与 不同contourplotcontour允许您自动指定线宽(或颜色,或其他)的向量,这样 contour(bar,lwd=c(2,1,1,1,1,))就足够了。

编辑 2:我很抱歉:这是在graphics包装中。

于 2013-08-22T14:07:36.137 回答