graphics
この質問のタイトルがすべてを物語っていると思います。同じパッケージ ( ) の 2 つの関数が間隔を異なる方法で処理する理由がわかりません。このimage
関数は、breaks 引数を使用してレベルを定義し、関数はcut
色を割り当てます。
「
breaks
が指定されている場合、zlim
は使用されず、使用されるアルゴリズムは に従いますcut
。そのため、間隔は右側で閉じ、左側で開いています。ただし、両端で閉じている最低間隔を除きます。*」
これは、たとえば休憩が として定義されているc(0,100,150,170,190,200)
場合、 の値が150
間隔 100 < x <= 150 に割り当てられることを意味します。
Levels: (0,100] (100,150] (150,170] (170,190] (190,200]
例として、以下のプロットは、等高線を重ねた 2 つの可能なイメージ プロットを示しています。わずかに低いブレークが使用されている場合にのみ、色の間隔を等高線と一致させます。
pal=colorRampPalette(c("green", "cyan", "yellow", "red", "pink"), space="rgb")
breaks <- c(0,100, 150, 170, 190, 200)
par(mfrow=c(1,2), mar=c(0.2,0.1,3,0.1))
image(seq(dim(volcano)[1]), seq(dim(volcano)[2]), volcano, col=pal(length(breaks)-1), breaks=breaks, xaxt="n", yaxt="n", ylab="", xlab="")
contour(seq(dim(volcano)[1]), seq(dim(volcano)[2]), volcano, levels=breaks, add=TRUE)
box()
mtext("image(breaks=breaks)\ncontour(levels=breaks)", side=3, line=0.5)
image(seq(dim(volcano)[1]), seq(dim(volcano)[2]), volcano, col=pal(length(breaks)-1), breaks=breaks-0.01, xaxt="n", yaxt="n", ylab="", xlab="")
contour(seq(dim(volcano)[1]), seq(dim(volcano)[2]), volcano, levels=breaks, add=TRUE)
box()
mtext("image(breaks=breaks-0.01)\ncontour(levels=breaks)", side=3, line=0.5)
それで、この不一致の理由があるかどうか、または私が示したものよりも優れた回避策があるかどうか、誰か教えてもらえますか?