我在 R 中使用 levelplot() 来生成矩阵(36 X 32)的彩色图像。矩阵中包含许多 NaN 值。当我尝试使用以下命令生成级别图时
range = c(815.4, 816.2)
matpalette <- colorRampPalette(c("blue", "black", "red"))(100)
levelplot(t(m1),scales = list(draw = FALSE), col.regions = matpalette, xlab = "", ylab = "", at = seq(min(m1), max(m1), length = 100), main=main)
我收到以下错误消息:
Error in seq.default(min(m1), max(m1), length = 100) : 'from' cannot be NA, NaN or infinite
这个错误是可以理解的。当我尝试使用以下命令时,而不是在 levelplot() 中使用 min(m1) 和 max(m1):
levelplot(m1,scales = list(draw = FALSE), col.regions = matpalette, xlab = "", ylab = "", at = seq(range[1], range[2], length = 100), main=main)
我得到一个空图,只有颜色条和指定为刻度值的范围。
我需要的是矩阵中的值的绘图,以及与提供的 levelplot 中相同的颜色条和相同的刻度值。任何人都可以帮助我吗?
# 变体 2
s <- seq(from=range[1], to=range[2], by=0.1)
levelplot(t(m1), scales=list(tick.number=0), xlab=" ", ylab=" ", colorkey = list(at=s, labels=as.character(s)),col.regions = two.colors(n=256, start='blue', end='red', middle='black'), main=main)
我得到的颜色条是这样的
注意:使用的范围不同