【发布时间】:2021-06-23 03:43:06
【问题描述】:
我正在绘制大气污染物领域或气象领域的地图,这些领域之间的差异,通常与地形叠加。 我的字段是网格化的。
一条白线神秘地出现,有时是两条。
这似乎有点随机。我的意思是:相同的代码和字段,相同的行;但是当我更改字段或色标时,它会更改位置,或者消失,或者出现另一个。有时水平,有时垂直。
这是我的代码
#!/usr/bin/env Rscript
library(rasterVis)
library(RColorBrewer)
NX <- 468
NY <- 421
hgt <- matrix(0.,NX,NY)
# read from file:
ucon <- file("hgt.dat", open="rb")
for (n in seq(1,NX)) {
hgt[n,] <- readBin(ucon, "numeric", n=NY, size=4)
}
close(ucon)
hgtbks <- c(-100,10,500,1000,1500,2000,2500,3000,3500)
hgtcols <- colorRampPalette(c("gray30","white"))(length(hgtbks)-1)
tit <- "Orography"
bkstart=50.0; bkmax=1500.; bkby=100.
bks <- seq(bkstart, bkmax, bkby)
nbks <- length(bks)
cols <- rev(colorRampPalette(brewer.pal(11,"Spectral"))(nbks-2))
cols <- c("white",cols)
legendbreaks <- seq(1,nbks)
legendlabels <- formatC(bks,digits=3)
legendlabpos <- legendbreaks
rpl <-
levelplot(hgt, margin=FALSE , col.regions= hgtcols, at= hgtbks
, main= list(label=tit, cex=1.8)
, colorkey=list(draw= TRUE, col=cols, at=legendbreaks
, labels=list(labels=legendlabels, at=legendlabpos, cex=1.2))
, xlab=NULL, ylab=NULL, scales= list(draw= FALSE))
png("whiteline.png", width=800, height=840)
plot(rpl)
graphics.off()
我真的很想上传一个包含我的数据的文件,但目前 我找不到办法(我认为我做不到,甚至没有 ASCII 文件)。数据矩阵 (468x421) 太大,无法显式包含在代码中,但它确实是地形文件 如图所示(平均海平面以上的海拔高度)。
这是生成的“白线”地图:
真的,我认为这可能是一个级别图错误。当 hgt 是一个矩阵和它是一个适当的光栅对象时,它似乎都会发生:这似乎没有什么区别。 有什么想法吗?
【问题讨论】:
-
如果您可以共享您的数据,以便其他人可以使用它并更有效地帮助您,也许会更好。
-
@AnoushiravanR ,我无法上传我的二进制数据文件(我认为我不能,甚至不能上传 ASCII 文件)。数据矩阵为 468x421,太大而无法显式包含在代码中。它包含 -100:5000 范围内的浮点数(以米为单位的平均海平面以上的高度)。而且不知道为什么今天上传的新图片不能嵌入到文字中
-
我在这方面没有太多经验,但是如果贡献者要帮助你,分享你的数据是必不可少的。否则不会引起任何反应。只需尝试
dput(head(data))并将输出复制到您的问题中,这样您就有更多机会获得相关结果。 -
我对 ggplot2 和 geom_tile 也有同样的问题。在这种情况下,我按照“设置小边距”的建议成功了:stackoverflow.com/questions/36334363/… 像这样:“myplot
-
很抱歉,我希望能帮上忙。我建议您再次编辑您的问题,以便它出现在网站的主页上,并且可能会吸引新的回复。
标签: r lattice levelplot rastervis