r - filled.contour - 描绘 z 值水平的变化

标签 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=200)

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

enter image description here

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

这可能吗?我会很感激一个基本的 R 解决方案,但如果这是不可能的,任何解决方案都会很好(ggplot、lattice)

最佳答案

您可以使用 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))
})

Filled contour

关于r - filled.contour - 描绘 z 值水平的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14184973/

相关文章:

r - 使用 model.matrix 进行单热编码

r - 从同一数据框中另一列的值派生列

R PMML 类分布

r - 在 R 中转换为一年中的日期和时间

android - Android 中加载大量大图像

user-interface - 商业游戏软件中使用的库(SDL的替代品)

c# - 图形 DrawImage 导致带有大红色 X 的错误

r - 在 R 中创建 % 重叠矩阵

.net - 如何在.NET中绘制3D数学模型?哪种 3D 引擎最适合有效地完成此任务?

android - 智能手机上的网页图形模糊 - 双图像大小或分辨率?