我用以下代码使用filled.contour()可视化了一些数据:
filled.contour(x, y, z, col = rainbow(256),nlevels=(256),
plot.title = title(main = "z",
xlab = "x", ylab = "y"),
key.title = title(main="T"),
)这将生成以下图:

然而,当我尝试记录数据时,调色板被回收,这使得这种图像的意义有点没有意义...:
filled.contour(x, y, log(z), col = rainbow(256),nlevels=(256),
plot.title = title(main = "z",
xlab = "x", ylab = "y"),
key.title = title(main="T"),
)

我还尝试了z <- log(z),然后调用filled.contour(x,y,z,...),但这产生了相同的结果。我已经尝试更改传递给col=rainbow()和nlevels()的值,但这也没有任何区别。
发布于 2011-11-14 23:14:45
如果我的矩阵中有负值(因此log(z)矩阵中的NA/NaN值也是负值),我可以重新生成一个类似的奇怪的图:
n <- 25; x <- y <- seq(n); z <- outer(x,y,function(x,y) (x-15)^2*(y-10)^3)
filled.contour(x,y,z,col=rainbow(256),nlevels=256)
filled.contour(x,y,log(z),col=rainbow(256),nlevels=256) ## warning: NaNs produced
filled.contour(x,y,log(pmax(z,0.001)),col=rainbow(256),nlevels=256)我使用pmax解决了问题,您的解决方案可能取决于您的问题。
我不确定这就是你的问题,但既然你没有给我们一个可重复的例子...
我不得不说,我还没有真正找到问题的根源--下面的简单示例给出了合理的答案,即使使用了Inf的值--但我现在没有时间深入研究。
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,color.palette=rainbow)
filled.contour(x,y,z2,col=rainbow(100),nlevels=100)https://stackoverflow.com/questions/8123143
复制相似问题