我使用gstat来预测二项式数据,但预测值高于1且低于0.有谁知道我如何处理这个问题?谢谢.
data(meuse)
data(meuse.grid)
coordinates(meuse) <- ~x+y
coordinates(meuse.grid) <- ~x+y
gridded(meuse.grid) <- TRUE
#glm model
glm.lime <- glm(lime~dist+ffreq, meuse, family=binomial(link="logit"))
summary(glm.lime)
#variogram of residuals
var <- variogram(lime~dist+ffreq, data=meuse)
fit.var <- fit.variogram(var, vgm(nugget=0.9, "Sph", range=sqrt(diff(meuse@bbox\[1,\])^2 + diff(meuse@bbox\[2,\])^2)/4, psill=var(glm.lime$residuals)))
plot(var, fit.var, plot.nu=T)
#universal kriging
kri <- krige(lime~dist+ffreq, meuse, meuse.grid, fit.var)
spplot(kri[1])
Run Code Online (Sandbox Code Playgroud)

我想删除晶格图周围的R的默认边距。这意味着我要摆脱红色矩形以外的所有白色空间。这是示例:
library (raster)
library(rasterVis)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
levelplot(r, margin=T)
Run Code Online (Sandbox Code Playgroud)
我想在levelplot中添加文本区域中的文本.在下面的示例中,我需要在指向位置的某处的文本.
library (raster)
library(rasterVis)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
levelplot(r)
Run Code Online (Sandbox Code Playgroud)
我试过mtext函数没有成功.有什么建议?
mtext("text", side=3, line=0)
Run Code Online (Sandbox Code Playgroud)
我想减少标记的大小ggcorrplot,并减少文本和图之间的空间.
library(ggcorrplot)
data(mtcars)
corr <- round(cor(mtcars), 1)
ggcorrplot(corr,sig.level=0.05 ,lab_size = 4.5, p.mat = NULL, insig = c("pch", "blank"), pch = 1, pch.col = "black", pch.cex =1,
tl.cex = 14)
Run Code Online (Sandbox Code Playgroud) 我想添加显示valuesof 的标签latitudinal zonal averages为levelplot'sgrey margin。在以下示例中,min和 的max值分别为latitudinal means和。关于将此信息提供给 的任何建议?
286751adding an axismargin
library(raster)
library(rasterVis)
r <- raster(system.file("external/test.grd", package="raster"))
levelplot(r, at=seq(100, 1850, by = 250))
# calculating the latitudinal means
rows <- init(r, v='y')
yAve <- zonal(r, rows, fun='mean',na.rm=TRUE)
summary(yAve)
Run Code Online (Sandbox Code Playgroud) 我有多个CSV文件,其名称中包含4个常用字符.我想知道如何使用相同的常用字符来处理文件.例如,"AM-25"在3个csv文件的名称中是常见的,而"BA-35"在另一个2的名称中是常见的.
文件类似于AM-25.myfiles.2000.csv,AM-25.myfiles.2001.csv,AM-25.myfiles.2002.csv,BA-35.myfiles.2000.csv,BA-35.myfiles .2001.csv,我用这个来读取所有文件:
files <- list.files(path=".", pattern="xyz+.csv", all.files = FALSE,full.names=TRUE )
Run Code Online (Sandbox Code Playgroud) 我正在处理大型栅格堆栈,因此需要重新采样和裁剪。我阅读了Tiff文件列表并创建了堆栈:
files <- list.files(path=".", pattern="tif", all.files=FALSE, full.names=TRUE)
s <- stack(files)
r <- raster("raster.tif")
s_re <- resample(s, r,method='bilinear')
e <- extent(-180, 180, -60, 90)
s_crop <- crop(s_re, e)
Run Code Online (Sandbox Code Playgroud)
此过程需要几天才能完成!但是,使用ArcPy和python可以更快。我的问题是:为什么R中的过程如此缓慢,以及是否有一种加快过程的方法?(我使用了snow软件包进行并行处理,但这也无济于事)。这些是r和s层:
> r
class : RasterLayer
dimensions : 3000, 7200, 21600000 (nrow, ncol, ncell)
resolution : 0.05, 0.05 (x, y)
extent : -180, 180, -59.99999, 90.00001 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
> s
class : RasterStack
dimensions : 2160, 4320, 9331200, 365 …Run Code Online (Sandbox Code Playgroud) 我要分配在两个α值xyplot面板功能:
点与alpha= 0.3和线带alpha=1。下面是一个例子:
library(lattice)
library(sp)
data(meuse)
xyplot(elev~ copper,data=meuse,groups=factor(soil),grid = TRUE,scales=list(tck=c(1,0), x=list(cex=1.1), y=list(cex=1.1)),
auto.key = list(space = 'right',text=c("1", "2", "3")),
par.settings = list(superpose.symbol = list(pch =20, cex = 1,
col = c("#006837", "#41ab5d","#fd8d3c"))),
type = c("p", "smooth"),col.line =c("#006837", "#41ab5d","#fd8d3c"),lwd = 5,
panel = function(x, ...) {
panel.xyplot(x, ..., alpha = 0.3)
panel.lines(x, ..., alpha = 1)
})
Run Code Online (Sandbox Code Playgroud) 我想更改海洋颜色(在 shapefile 边界之外)。我可以剪辑栅格并更改背景颜色,但在这里我想使用添加的 shapefile 来实现。
library(raster)
library(rasterVis)
library(maps)
library(maptools)
library(mapdata)
r <- raster(nrow=361, ncol=576, ymn=-90, ymx=90)
values(r) <- 1:ncell(r)
data(wrld_simpl, package = "maptools")
levelplot(r)+ layer(sp.polygons(wrld_simpl, lwd=0.1, col='gray'))
Run Code Online (Sandbox Code Playgroud)
我有一个带有Name,longitude和latitude列的数据框。我想要一个遍历每一行的函数,从栅格堆栈中提取值并根据Name列写入 csv 文件。
Name Lon Lat
Name1 11.11 47.87
Name2 150.1 -40.4
Name3 -50.2 -3.5
Name4 -100.3 49.8
library(raster)
s <- stack(replicate(5, {raster(matrix(runif(2160*4320), 2160),
xmn=-180, xmx=180, ymn=-90, ymx=90)}))
I can do that one by one:
location <- data.frame(11.11, 47.87)
ex <- extract(s, location)
write.csv(ex, "Name1.csv")
Run Code Online (Sandbox Code Playgroud) 我想绘制随时间步长的双变量相关性,以便x轴是时间,y轴是双变量相关系数.该airquality数据可以是一个很好的例子.在这种情况下,我想绘制之间的相关性Ozone&Temp和Ozone&Wind过度Day.谢谢!
data(airquality)
Run Code Online (Sandbox Code Playgroud)
相关矩阵如下所示:
Ozone Solar.R Wind Temp Month Day
Ozone 1.00 0.35 -0.60 0.70 0.16 -0.01
Solar.R 0.35 1.00 -0.06 0.28 -0.08 -0.15
Wind -0.60 -0.06 1.00 -0.46 -0.18 0.03
Temp 0.70 0.28 -0.46 1.00 0.42 -0.13
Month 0.16 -0.08 -0.18 0.42 1.00 -0.01
Day -0.01 -0.15 0.03 -0.13 -0.01 1.00
Run Code Online (Sandbox Code Playgroud) 我有此数据集,我想填写area under each line。但是我收到一条错误消息:
错误:stat_bin()不得用于美观。
另外,我需要使用alpha透明性值。有什么建议么?
library(reshape2)
library(ggplot2)
dat <- data.frame(
a = rnorm(12, mean = 2, sd = 1),
b = rnorm(12, mean = 4, sd = 2),
month = c("JAN","FEB","MAR",'APR',"MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"))
dat$month <- factor(dat$month,
levels = c("JAN","FEB","MAR",'APR',"MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"),
ordered = TRUE)
dat <- melt(dat, id="month")
ggplot(data = dat, aes(x = month, y = value, colour = variable)) +
geom_line() +
geom_area(stat ="bin")
Run Code Online (Sandbox Code Playgroud) 我有以下示例数据,想要创建一个地平线图,area显示year. 有什么建议使用这样做吗ggplot2?
year <- 1990:2005
area1 <- runif(16, 18,20)
area2 <- runif (16,6,6.7)
area3 <- runif(16, 7,8)
dat <- data.frame(year, area1, area2, area3)
Run Code Online (Sandbox Code Playgroud)