Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 填充轮廓-描绘z值水平的变化_R_Graphics - Fatal编程技术网

R 填充轮廓-描绘z值水平的变化

R 填充轮廓-描绘z值水平的变化,r,graphics,R,Graphics,我必须生成filled.contour图,这些图在z值中具有某种对称性,如下面的代码所示 x <- 1:5 y <- 1:5 z <- matrix(outer(x,y,"+"),nrow=5) filled.contour(x,y,z) filled.contour(x,y,z,color.palette=rainbow) z2 <- z z2[5,5] <- Inf filled.contour(x,y,z2,col=rainbow(200),nlevels=2

我必须生成
filled.contour
图,这些图在z值中具有某种对称性,如下面的代码所示

x <- 1:5
y <- 1:5
z <- matrix(outer(x,y,"+"),nrow=5)
filled.contour(x,y,z)
filled.contour(x,y,z,color.palette=rainbow)
z2 <- z
z2[5,5] <- Inf
filled.contour(x,y,z2,col=rainbow(200),nlevels=200)

x这里的每一个整数都是黑色的(使用is.integer中的一个示例),可以修改为仅返回
black
偶数:

getcolor <- function(z, n) {
  is.wholenumber <-
    function(x, tol = .Machine$double.eps^0.5)  abs(x - round(x)) < tol
  pp <- pretty(range(z, finite=TRUE), n)
  ifelse(is.wholenumber(pp), 'black', rainbow(n))
}

filled.contour(x,y,z2,col=getcolor(z2, 200),nlevels=200)
getcolor您可以使用countourLines()添加行,使用text()添加文本:

txtlab <- c("2", "4", "6", "8", "Inf")
txtpos <- c(1.25, 2, 3, 4, 4.75)
ctlns <- contourLines(x, y, z2, levels=c(3, 5, 7, 9))
filled.contour(x,y,z2,col=rainbow(200),nlevels=200, 
     plot.axes={axis(1); axis(2); text(txtpos, txtpos, txtlab, cex=1.5);
     sapply(1:4, function(x) lines(ctlns[[x]][[2]], ctlns[[x]][[3]], lwd=2))
})

txtlab我最近做过类似的事情,我使用了这种类型的代码:

x <- 1:5
y <- 1:5
z <- matrix(outer(x,y,"+"),nrow=5)
z2 <- z
z2[5,5] <- Inf
filled.contour(x,y,z2,col=rainbow(200),nlevels=200
plot.axis = {axis(1);axis(2);contour(x,y,z2,add=TRUE)}) #that's when you add the contours

x太好了。非常感谢你。这是否也允许直线,但曲线?是的,contourLines()函数也将构造曲线轮廓线。太棒了!我会给你答案,因为这个答案不会弄乱传说。sapply也很有用!非常感谢你!这是一个非常聪明的方法。将线条图形集成到颜色中。我有两个问题。1.我希望自己指定范围/间隔(而不是依赖于“漂亮”)。2.这种方法是否允许弯曲的生命?3.图例上有没有可能不画黑线?。感谢lot1:图例和情节似乎没有单独的颜色参数,答案似乎是2:没有任何线条;如果形状z==常数是弯曲的,则黑色也会弯曲。