首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >filled.contour -描述z值级别的变化

filled.contour -描述z值级别的变化
EN

Stack Overflow用户
提问于 2013-01-07 01:54:36
回答 3查看 5.1K关注 0票数 3

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

代码语言:javascript
复制
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)

我希望能够描绘z值的级别,例如某些级别或增量(2,4,6,8,10)增量,以便获得以下图

我想保留col=rainbow(200)的级别,以便绘制平滑的颜色和颜色过渡,但我想描绘某些值/增量。

这个是可能的吗?我将感谢一个基本的R解决方案,但如果这是不可能的,任何解决方案将是好的(ggplot,网格)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-07 04:38:40

您可以使用countourLines()添加行,使用text()添加文本:

代码语言:javascript
复制
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))
})

票数 4
EN

Stack Overflow用户

发布于 2013-01-07 03:20:47

这里的每个整数都是黑色的(使用is.integer中的一个例子),它可以很容易地修改为只返回偶数的black

代码语言:javascript
复制
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)

票数 1
EN

Stack Overflow用户

发布于 2018-02-01 22:03:56

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

代码语言:javascript
复制
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

Result (click on link to see)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14184973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档