Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R水平图,非连续纬度和经度值_R_Plot_Lattice - Fatal编程技术网

R水平图,非连续纬度和经度值

R水平图,非连续纬度和经度值,r,plot,lattice,R,Plot,Lattice,我将数据集表示为经纬度和一个与每个经纬度对相关联的值(名为“类”),我希望在“lattice”包下使用levelplot()或tourtourplot()表示“R”。 示例数据集如下所示: > data_2[510:520,] lon lat class 510 -47.61849 40.00805 2 511 -47.36740 40.01180 1 512 -47.11629 40.01551 1 513 -46.86518 40.

我将数据集表示为经纬度和一个与每个经纬度对相关联的值(名为“类”),我希望在“lattice”包下使用levelplot()或tourtourplot()表示“R”。 示例数据集如下所示:

> data_2[510:520,]
          lon      lat class
510 -47.61849 40.00805     2
511 -47.36740 40.01180     1
512 -47.11629 40.01551     1
513 -46.86518 40.01918     1
514 -46.61404 40.02282     1
515 -46.36290 40.02642     3
516 -46.11173 40.02999     1
517 -45.86056 40.03352     1
518 -45.60937 40.03700     3
519 -45.35817 40.04045     3
520 -45.10695 40.04386     3
主数据集中的经度和纬度值不连续

我的问题是,我没有所有经纬度组合的“类”值,因此,当我试图绘制上述值时,会留下很多空白。我想要的是得到一个连续的,填充的(所有lat-long组合)图

以下是我试图绘制的其中一种方式的示例:

levelplot(data_2$class~data_2$lon*data_2$lat,data=data_2,region=TRUE,aspect=“fill”)


levelplot()或contourplot()函数中是否有任何选项可供我使用,或者“R”中是否有任何其他包/方法可帮助我提出此解决方案

首先需要进行某种插值。
akima
包可能是您最好的选择,请参阅
?akima
中的示例<代码>gstat::克里格是另一种可能性。

我建议大家看看免费电子书《地质统计制图实用指南》(http://spatial-analyst.net/book/download)以R

正如本所指出的,你需要做一些空间插值。下面是一个使用
intamap
包中的
interpolate
函数的快速示例:

library(intamap)
library(lattice)

# Generate an example dataset
set.seed(10)

class1 <- data.frame(lon=rnorm(50, mean=-46, sd=4), 
                     lat=rnorm(50, mean=32, sd=4), 
                     value=1)

class2 <- data.frame(lon=rnorm(50, mean=-40, sd=4), 
                     lat=rnorm(50, mean=39, sd=4), 
                     value=2)

class3 <- data.frame(lon=rnorm(50, mean=-50, sd=3), 
                     lat=rnorm(50, mean=40, sd=2), 
                     value=3)

df <- rbind(class1, class2, class3)

# Generate a 50 x 50 grid over which to predict new values
prediction.grid <- expand.grid(lon=seq(from=min(df$lon), 
                                       to=max(df$lon), 
                                       length=50),
                               lat=seq(from=min(df$lat), 
                                       to=max(df$lat), 
                                       length=50))
# Spatialize the data.frames                           
coordinates(df) <- c("lon", "lat")
gridded(prediction.grid) <- c("lon", "lat")

fit <- interpolate(df, prediction.grid)

# Built-in plots, including variogram and pertinent stats:
plot(fit)

# Pull out the fitted values into a dataframe
predictions <- as.data.frame(t(fit$outputTable))

levelplot(mean ~ x * y, data=predictions, region=TRUE, aspect="fill")
库(intamap)
图书馆(格子)
#生成一个示例数据集
种子(10)

class1“类”是什么类型的变量(无序因子、有序因子、连续)?该值需要在采样坐标之间的连续网格上进行插值或估计,估计方法取决于变量类型。您好,danpelota,感谢您的回复。类变量是一个连续的数字(对于数据集的所有520个实例,我的变量范围在0-4之间,其中每个实例都是经纬度和这个lat-long对的值(类)的组合)。请举例说明如何生成/估算。我看到的一个问题是,纬度和经度变量在数据网格中不是连续的。