我正在尝试制作类似这样的地图,但分辨率更高,而且外观更像瓷砖:
使用此代码:
samps <- read.csv("Petra_phytoplankton+POM_xydata_minusNAs_noduplicates.csv") #my data for sampling sites, contains a column of "lat" and a column of "lon" with GPS points in decimal degrees
samps_test<-samps
x<-samps_test$longitude
y<-samps_test$latitude
z<-samps_test$d13C
## interpolation using akima
x0<-seq(min(x), max(x), length = 100)
y0<-seq(min(y), max(y), length = 100)
z.hat <- interp(x,y,z)
#plot
par(mar=c(4.1,4.1,1,1))
image.plot(z.hat)
map(add=TRUE, fill=TRUE)
points(samps_test$longitude,samps_test$latitude,pch=4)
但是我想用更高的分辨率进行插值,所以我使用filled.contour()来创建这个地图:
如您所见,地图和原始数据点未正确绘图....如何修复此问题?我有一种感觉,因为fill.contour()图不是地理参考的(所以不在与地图和数据点相同的坐标系中)......但我该如何改变呢?
第二张地图的代码:
df <-read.table("Petra_phytoplankton+POM_xydata_minusNAs_noduplicates.txt",header=T)
attach(df)
names(df)
fld <- with(df, interp(x = longitude, y = latitude, z = d13C))
filled.contour.ungeoreferenced<-(filled.contour(x = fld$x,
y = fld$y,
z = fld$z,
color.palette =
colorRampPalette(c("blue", "green","yellow","orange","red")),
xlab = "Longitude",
ylab = "Latitude",
key.title = title(main = "d13C", cex.main = 1)))
map(add=TRUE, fill=TRUE)
points(samps_test$longitude,samps_test$latitude, pch=4) #not plotting in the same space
我也尝试使用geom_tile在ggplot中创建此图,但它不起作用?
另外,我意识到这可能是另一个问题,但目前我不知道如何更改轴标题等,因为它似乎没有绘制基础图包,所以正常命令不要工作。
这里的FYI是我的数据集的一个子集:
latitude longitude d13C
-65 -70 -27.7
-61 150 -32.2
-61 150 -28.3
-60 116 -26.8
-60 116 -24.7
-47 38 -24.8
-38 150 -20.5
19 -65.7 -19.9
19 -65.5 -18.5
18 -60.7 -20
18 -58.5 -18.2
18 -57.8 -19
17 -55.4 -18.6
17 -50.8 -18
17 -47.1 -18.3
17 -45.5 -19.4
16 -43.3 -17.9
15 -40.7 -18.5
14 -39.3 -19.9
12 -36.7 -19.9
12 -36.2 -19.9
11 -34.4 -19.2
10 -32 -18.5
9 -30.3 -19.3
8 -29.2 -19.4
7 -26.6 -18.2
7 -25.5 -19.3
6 23.9 -20
3 -21.3 -20.4
我查看了这些帮助论坛,但他们没有告诉我如何将我的数据点或地图转换为与filled.contour相同的缩放比例。 Plotting a box within filled.contour plots in R?