在R

时间:2016-05-25 19:46:25

标签: r raster r-raster

我想使用以下方法创建栅格图像的值分布图,如直方图或图形:

library(raster)
library(sp)
library(rgdal)
DEM <- raster("NR.tif")
hist(DEM)
plot(DEM)

plot()用于验证我的数据并向我显示全绿色图像。据说是第1频道的第3频道。 但是我看不到其他乐队? 显然,直方图中的分布不代表图像文件中的内插值。 在ARCgis中创建的直方图在这里hist,我相信这代表了真正的价值。

有关如何创建真实值的直方图的任何建议,例如image

最佳, 的Mathias

2 个答案:

答案 0 :(得分:3)

你可以尝试

download.file("https://www.dropbox.com/s/t279m5ojners7fl/NR.tif?dl=1", 
              tf <- tempfile(fileext = ".tif"), mode="wb")
library(raster)
library(tiff)
library(ggplot2)
library(reshape2)
DEM <- readTIFF(tf)
plot(as.raster(DEM))

enter image description here

ggplot(melt(DEM), 
       aes(value, fill=as.factor(Var3))) + 
  geom_histogram(position="dodge") 

enter image description here

或者,关于您的更新

r <- as.raster(DEM)
tab <- as.data.frame(sort(table(r)))
ggplot(subset(tab, !r %in% c("#F0F0F0", "#000000")), 
              aes(x=r, y=Freq, fill=I(r))) + 
         geom_bar(stat="identity") + 
  theme(axis.text.x = element_text(angle=90))

enter image description here

答案 1 :(得分:2)

尝试将NAvalue设置为背景颜色,然后调用hist()函数或使用lukeA中的ggplot命令:

library(raster)
ras <- stack("Downloads/NR.tif")
NAvalue(ras) <- 240
hist(ras)

这导致以下图表: enter image description here