Draw histograms (with lattice) of Raster objects.
methods
## S4 method for signature 'Raster,missing'histogram(x, data=NULL, layers, FUN, maxpixels =1e+05, nint=100, xlab='', ylab='', main='', col='gray', between=list(x=0.5, y=0.2), as.table=TRUE, scales=list(x=list(relation='free'), y=list(relation='free', draw=FALSE)), names.attr, par.settings=rasterTheme(), att =1,...)## S4 method for signature 'SpatRaster,missing'histogram(x, data=NULL, layers, FUN, maxpixels =1e+05, nint=100, xlab='', ylab='', main='', col='gray', between=list(x=0.5, y=0.2), as.table=TRUE, scales=list(x=list(relation='free'), y=list(relation='free', draw=FALSE)), names.attr, par.settings=rasterTheme(), att =1,...)## S4 method for signature 'formula,Raster'histogram(x, data, dirXY, maxpixels =1e+05, strip=TRUE, par.settings=rasterTheme(), att =1,...)## S4 method for signature 'formula,SpatRaster'histogram(x, data, dirXY, maxpixels =1e+05, strip=TRUE, par.settings=rasterTheme(), att =1,...)
Arguments
x: A Raster* object, a SpatRaster object or a formula.
data: NULL, a Raster object, or SpatRaster object.
layers: A numeric or character which should indicate the layers to be displayed.
dirXY: A direction as a function of the coordinates (see xyLayer).
FUN: A function to applied to the z slot of a RasterStackBrick object or to the time index of the SpatRaster object. The result of this function is used as the grouping variable of the plot.
nint: Number of breaks for the histogram. See the documentation of lattice::histogram at lattice for details.
maxpixels: A numeric, for sampleRandom or spatSample.
att: If x is a factor, integer or character to choose which variable (column) in the RAT table should be used.
xlab, ylab, main, col: Arguments for histogram.
names.attr: Character or expression, names to use in each panel. If missing its default value is the result of names(x)
(after subsetting the layers to be displayed).
between, as.table, scales, strip, par.settings: Graphical parameters of lattice. See lattice::xyplot for details.
...: Additional arguments for lattice::histogram
Note
If you need different breakpoints in each panel, set breaks
explicitely with NULL, a numeric or a character (for example, 'Sturges'; see hist for details)
library(raster)library(terra)f <- system.file("external/test.grd", package="raster")r <- raster(f)histogram(r)s <- stack(r, r+500, r-500)## Same breakpoints across panelshistogram(s)## Each panel with different breakpointshistogram(s, breaks=NULL)histogram(s, breaks='Sturges')histogram(s, breaks=30)## Categorical datar <- raster(nrow=10, ncol=10)r[]=1r[51:100]=3r[3:6,1:5]=5r <- ratify(r)rat <- levels(r)[[1]]rat$landcover <- c('Pine','Oak','Meadow')rat$class <- c('A1','B2','C3')levels(r)<- rat
histogram(r)histogram(r, att ="class")## Not run:library(zoo)dataURL <-"https://raw.github.com/oscarperpinan/bookvis/master/data/"##Solar irradiation data from CMSAF http://dx.doi.org/10.5676/EUM_SAF_CM/RAD_MVIRI/V001old <- setwd(tempdir())download.file(paste0(dataURL,"SISmm2008_CMSAF.zip"),"SISmm2008_CMSAF.zip", method='wget')unzip("SISmm2008_CMSAF.zip")listFich <- dir(pattern='\\.nc')stackSIS <- stack(listFich)stackSIS <- stackSIS*24##from irradiance (W/m2) to irradiation Wh/m2idx <- seq(as.Date('2008-01-15'), as.Date('2008-12-15'),'month')SISmm <- setZ(stackSIS, idx)names(SISmm)<- month.abb
histogram(SISmm)histogram(SISmm, FUN=as.yearqtr)## With the formula interface you can create histograms for a set of variableshistogram(~ Jan + Dec, data=SISmm)## Or use the coordinates for generating zonal histograms.## For example, five histograms for each latitude zone histogram(~ Jan | cut(y,5), data=SISmm)## More sophisticated bands can be defined using the dirXY argument histogram(~ Jan | cut(dirXY,5), dirXY = x^2+ y^2, data=SISmm)setwd(old)## End(Not run)## Not run:##http://neo.sci.gsfc.nasa.gov/Search.html?group=64pop <- raster('875430rgb-167772161.0.FLOAT.TIFF')pop[pop==99999]<-NAlevelplot(pop, zscaleLog=10, par.settings=BTCTheme, panel=panel.levelplot.raster, interpolate=TRUE)##http://neo.sci.gsfc.nasa.gov/Search.html?group=20landClass <- raster('241243rgb-167772161.0.TIFF')landClass[landClass==254]<-NAs <- stack(pop, landClass)names(s)<- c('pop','landClass')histogram(~asinh(pop)|landClass, data=s, scales=list(relation='free'), strip=strip.custom(strip.levels=TRUE))## End(Not run)