我需要将一个代表考古遗址的地图与不同考古物件的XY ggplot图表结合起来。地图以tiff文件形式呈现,必须保持其比例。
首先,这是地图,并且用红色突出显示参考比例尺(例如,在X轴上,从-6000到-4000之间有20米的距离;在Y轴上,从900到2100之间有12米)。
我的ggplot图表是通过运行以下代码获得的:
archaeo <- ggplot() +
geom_ellipsis(data=Unit_H,
aes(x0 = X, y0 = Y, a = Diameter_E.W/2+250, b = Diameter_N.S/2+250, angle = 0),
lwd=0, col="darkgray", fill="gray", alpha=0.15) +
geom_ellipsis(data=Unit_H,
aes(x0 = X, y0 = Y, a = Diameter_E.W/2+120, b = Diameter_N.S/2+120, angle = 0),
lwd=0, col="darkgray", fill="gray", alpha=0.25) +
geom_ellipsis(data=Unit_H,
aes(x0 = X, y0 = Y, a = Diameter_E.W/2, b = Diameter_N.S/2, angle = 0),
lwd=0.5, col="darkgray", fill="gray", alpha=0.75) +
geom_point(data=Unit_H, aes(X, Y), size = 0.5) +
geom_point(data=Refits_H_trans, aes(x,y,group=sample, colour=factor(sample))) +
geom_line(data=Refits_H_trans, lwd=0.2, lty=1, aes(x,y, group=sample, colour=factor(sample))) +
coord_fixed() +
theme_bw() +
theme(legend.position="none") +
ggtitle("Unit H") +
xlim(-6600,-3800) +
ylim(400,2400)
得到的图表如下:
现在,我的问题是如何将地图作为ggplot的背景。我使用ggpubr中的background_image(),得到了以下结果:
map_levelH <- readPNG("Planta H-I.png")
Map.archaeo <- ggplot() +
background_image(map_levelH) +
geom_ellipsis(data=Unit_H,
aes(x0 = X, y0 = Y, a = Diameter_E.W/2+250, b = Diameter_N.S/2+250, angle = 0),
lwd=0, col="darkgray", fill="gray", alpha=0.15) +
geom_ellipsis(data=Unit_H,
aes(x0 = X, y0 = Y, a = Diameter_E.W/2+120, b = Diameter_N.S/2+120, angle = 0),
lwd=0, col="darkgray", fill="gray", alpha=0.25) +
geom_ellipsis(data=Unit_H,
aes(x0 = X, y0 = Y, a = Diameter_E.W/2, b = Diameter_N.S/2, angle = 0),
lwd=0.5, col="darkgray", fill="gray", alpha=0.75) +
geom_point(data=Unit_H, aes(X, Y), size = 0.5) +
geom_point(data=Refits_H_trans, aes(x,y,group=sample, colour=factor(sample))) +
geom_line(data=Refits_H_trans, lwd=0.2, lty=1, aes(x,y, group=sample, colour=factor(sample))) +
coord_fixed() +
theme_bw() +
theme(legend.position="none") +
ggtitle("Unit H") +
xlim(-6600,-3800) +
ylim(400,2400)
如您所见,ggplot和地图的比例尺不匹配。因此,我的问题是:
- 我该如何使用ggplot X轴和Y轴的值来进行地图配准?
- 我需要保持图像的比例,以免扭曲它。我该如何做到这一点?我问这个问题是因为如果我更改xlim值,图像也会改变,并且其比例会改变。
theme_void()
的方法删除 ggplot 的轴是否足够? - DJackcrs
)。 - DJack