0

Latticeパッケージのcontourplot関数を使用して、塗りつぶされた等高線図を作成しました。この関数によって作成された等高線の 1 つを強調したいと思います (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="") 

答えには関数 update、panel、および/または layer (latticeExtra を使用する場合) が含まれる可能性が高いことは認識していますが、ラティス オブジェクトの基礎となるロジック/構造についての私の理解は、何をすべきかを理解するのに十分ではありません。

編集

ご協力いただきありがとうございます。私は基本的に最初の回答を使用しましたが、等高線上のいくつかの機能を指摘できるように、次のわずかな変更を加えました。

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 に答える