如何使用ggplot2在SpatialLinesDataFrame上添加点?

如何使用ggplot2在SpatialLinesDataFrame上添加点?,r,ggplot2,spatial,R,Ggplot2,Spatial,我有一个空间线数据框和一些点。这些点在第三列有一些数字,比如x和y坐标下的平均道路死亡(被汽车杀死的动物,又名撞跑)。我想画出这些数字高的道路的哪一部分,但我还不能在网络上放置点。我从中获得的示例代码 附言:我可以使用其他情节,只要它看起来不错。如果你有任何建议,请寄给我。 PS2:我很想把它放在真实的地图上,但我不知道如何让地图使用x和y坐标 Coords <- matrix(c(4095215,2303286,4095275,2303226,4095275,2303196,4095

我有一个空间线数据框和一些点。这些点在第三列有一些数字,比如x和y坐标下的平均道路死亡(被汽车杀死的动物,又名撞跑)。我想画出这些数字高的道路的哪一部分,但我还不能在网络上放置点。我从中获得的示例代码

附言:我可以使用其他情节,只要它看起来不错。如果你有任何建议,请寄给我。 PS2:我很想把它放在真实的地图上,但我不知道如何让地图使用x和y坐标

  Coords <- matrix(c(4095215,2303286,4095275,2303226,4095275,2303196,4095395,2303076,
                   4095425,2303076,4095485,2303016,4095485,2302896,4095545,2302836,4095545,2302806,
                   4095575,2302776,4095575,2302746,4095635,2302686,4095635,2302656,4095665,2302626,
                   4095665,2302596,4095695,2302566,4095695,2302536,4095725,2302506,4095725,2302476,
                   4095755,2302446,4095785,2302446,4095815,2302476,4095845,2302446,4095875,2302446,
                   4095965,2302356,4095965,2302296,4096055,2302206,4096055,2302146,4096085,2302116,
                   4096085,2302086,4096205,2301966,4096205,2301906,4096295,2301816,4096295,2301666,
                   4096325,2301636,4096325,2301516,4096385,2301456,4096385,2301426,4096445,2301366,
                   4096415,2301336,4096415,2301276,4096445,2301246,4096445,2301156,4096385,2301096,
                   4096415,2301066,4096415,2300886,4096385,2300856,4096385,2300826,4096355,2300796,
                   4096385,2300766,4096355,2300736,4096355,2300706,4096265,2300616,4096265,2300556,
                   4096205,2300496,4096235,2300466,4096205,2300436,4096205,2300406,4096235,2300376,
                   4096235,2300346,4096175,2300286,4096115,2300286,4096085,2300256,4096085,2300226,
                   4095995,2300136,4095995,2300106,4095875,2299986,4095875,2299956,4095905,2299926,
                   4095905,2299896,4095875,2299866,4095875,2299806,4095845,2299776,4095815,2299806,
                   4095605,2299596,4095605,2299566,4095575,2299536,4095545,2299566,4095515,2299536,
                   4095485,2299566), ncol = 2, byrow = T)

myLine <- Line(Coords)
myLines <- Lines(list(myLine), ID = 1)
mySL <- SpatialLines(list(myLines), proj4string = CRS("+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs"))
mySLDF <- SpatialLinesDataFrame(mySL, data = data.frame(ID = 1))


poiX=c(4095485,4096415,4095605)
poiY=c(2302896,2301336,2299596)
poiZ=c(.3,.2,.43)
poii=cbind(poiX,poiY,poiZ)

plot(mySLDF)
points(poii,col="red")

Coords为了让
ggplot
正常工作,我做了一些更改。我使用
group
列创建了
poii
数据帧,并使用显式命名参数修改了
geom_point
调用,同时更正了正在传递的数据帧列的名称

library(sp)
library(ggplot2)
Coords <- matrix(c(4095215,2303286,4095275,2303226,4095275,2303196,4095395,2303076,
                                         4095425,2303076,4095485,2303016,4095485,2302896,4095545,2302836,4095545,2302806,
                                         4095575,2302776,4095575,2302746,4095635,2302686,4095635,2302656,4095665,2302626,
                                         4095665,2302596,4095695,2302566,4095695,2302536,4095725,2302506,4095725,2302476,
                                         4095755,2302446,4095785,2302446,4095815,2302476,4095845,2302446,4095875,2302446,
                                         4095965,2302356,4095965,2302296,4096055,2302206,4096055,2302146,4096085,2302116,
                                         4096085,2302086,4096205,2301966,4096205,2301906,4096295,2301816,4096295,2301666,
                                         4096325,2301636,4096325,2301516,4096385,2301456,4096385,2301426,4096445,2301366,
                                         4096415,2301336,4096415,2301276,4096445,2301246,4096445,2301156,4096385,2301096,
                                         4096415,2301066,4096415,2300886,4096385,2300856,4096385,2300826,4096355,2300796,
                                         4096385,2300766,4096355,2300736,4096355,2300706,4096265,2300616,4096265,2300556,
                                         4096205,2300496,4096235,2300466,4096205,2300436,4096205,2300406,4096235,2300376,
                                         4096235,2300346,4096175,2300286,4096115,2300286,4096085,2300256,4096085,2300226,
                                         4095995,2300136,4095995,2300106,4095875,2299986,4095875,2299956,4095905,2299926,
                                         4095905,2299896,4095875,2299866,4095875,2299806,4095845,2299776,4095815,2299806,
                                         4095605,2299596,4095605,2299566,4095575,2299536,4095545,2299566,4095515,2299536,
                                         4095485,2299566), ncol = 2, byrow = T)
    
myLine <- Line(Coords)
myLines <- Lines(list(myLine), ID = 1)
mySL <- SpatialLines(list(myLines), proj4string = CRS("+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs"))
mySLDF <- SpatialLinesDataFrame(mySL, data = data.frame(ID = 1))
    
long=c(4095485,4096415,4095605)
lat=c(2302896,2301336,2299596)
poiZ=c(.3,.2,.43)
group = c(1.1, 1.1, 1.1)
poii=data.frame(long,lat,poiZ,group)
    
mySLDF_fortify <- fortify(mySLDF)
    
ggplot(mySLDF_fortify, aes(x=long, y=lat, group=group)) +
    geom_path() + 
    geom_point(data=poii, mapping=aes(x=long, y=lat, color=poiZ, group=group)) +
    scale_color_gradient2(low="yellow", mid="darkblue", high="red") + 
    theme_classic()
    
库(sp)
图书馆(GG2)
坐标
library(sp)
library(ggplot2)
Coords <- matrix(c(4095215,2303286,4095275,2303226,4095275,2303196,4095395,2303076,
                                         4095425,2303076,4095485,2303016,4095485,2302896,4095545,2302836,4095545,2302806,
                                         4095575,2302776,4095575,2302746,4095635,2302686,4095635,2302656,4095665,2302626,
                                         4095665,2302596,4095695,2302566,4095695,2302536,4095725,2302506,4095725,2302476,
                                         4095755,2302446,4095785,2302446,4095815,2302476,4095845,2302446,4095875,2302446,
                                         4095965,2302356,4095965,2302296,4096055,2302206,4096055,2302146,4096085,2302116,
                                         4096085,2302086,4096205,2301966,4096205,2301906,4096295,2301816,4096295,2301666,
                                         4096325,2301636,4096325,2301516,4096385,2301456,4096385,2301426,4096445,2301366,
                                         4096415,2301336,4096415,2301276,4096445,2301246,4096445,2301156,4096385,2301096,
                                         4096415,2301066,4096415,2300886,4096385,2300856,4096385,2300826,4096355,2300796,
                                         4096385,2300766,4096355,2300736,4096355,2300706,4096265,2300616,4096265,2300556,
                                         4096205,2300496,4096235,2300466,4096205,2300436,4096205,2300406,4096235,2300376,
                                         4096235,2300346,4096175,2300286,4096115,2300286,4096085,2300256,4096085,2300226,
                                         4095995,2300136,4095995,2300106,4095875,2299986,4095875,2299956,4095905,2299926,
                                         4095905,2299896,4095875,2299866,4095875,2299806,4095845,2299776,4095815,2299806,
                                         4095605,2299596,4095605,2299566,4095575,2299536,4095545,2299566,4095515,2299536,
                                         4095485,2299566), ncol = 2, byrow = T)
    
myLine <- Line(Coords)
myLines <- Lines(list(myLine), ID = 1)
mySL <- SpatialLines(list(myLines), proj4string = CRS("+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs"))
mySLDF <- SpatialLinesDataFrame(mySL, data = data.frame(ID = 1))
    
long=c(4095485,4096415,4095605)
lat=c(2302896,2301336,2299596)
poiZ=c(.3,.2,.43)
group = c(1.1, 1.1, 1.1)
poii=data.frame(long,lat,poiZ,group)
    
mySLDF_fortify <- fortify(mySLDF)
    
ggplot(mySLDF_fortify, aes(x=long, y=lat, group=group)) +
    geom_path() + 
    geom_point(data=poii, mapping=aes(x=long, y=lat, color=poiZ, group=group)) +
    scale_color_gradient2(low="yellow", mid="darkblue", high="red") + 
    theme_classic()