2017-08-11 69 views
0

我有一些Lat/Long来宾参与事件的数据(我在下面添加了数据,只是前几行,但我的df更大)。将行添加到R/ggplot中的中心点(经纬度/长度)

Name, n, Town, State, Country, Lat, Long 
Bob, 5, Dundee, n/a, Scotland, 56.462018, -2.970721 
Bob, 1, Forfar, n/a, Scotland, 56.643558, -2.889062 
Jefferson, 1, Inverness, n/a, Scotland, 57.477773, -4.224721 
Dave, 2, London, n/a, England, 51.507351, -0.127758 
Randy, 2, Dublin, n/a, Ireland, 53.349805, -6.260310 
Buck, 2, Landing, NJ, USA, 40.905411, -74.665695 
John, 2, Randolph, NJ, USA, 40.847806, -74.574725 
Frank, 1, Morris Plains, NJ, USA, 40.839592, -74.481870 
Jimmy, 1, Henryville, PA, USA, 41.093703, -75.241293 
Mike, 1, Cliffside Park, NJ, USA, 40.821489, -73.987639 
Spence, 1, North Bergen, NJ, USA, 40.804267, -74.012084 
Jimmy, 1, West New York, NJ, USA, 40.787879, -74.014306 
Jerry, 2, North Bergen, NJ, USA, 40.804267, -74.012084 
Dingle, 1, North Bergen, NJ, USA, 40.804267, -74.012084 

然后,我有事件地点的纬度/经度:

lat<-40.853988 
long<--74.829055 

我想什么做的是情节都为客人的散点图点,然后有一个单一的走行从每个客人点到事件地点。

获取散布很简单:

### Copy Data from above to Clipboard 
event<-read.table(file = "clipboard", sep = ",", header=TRUE) 
ggplot(event, aes(x=Long, y=Lat)) + 
    geom_point(color="darkred", size=2, alpha=.3) + 
    geom_point(aes(x=long, y=lat), color="blue", size=3) 

现在,有没有办法有一个行来自每个客人点(红点)的事件位置(蓝点)?

我试过geom_path(),但是这样系统地添加了一条从点到点的直线。

回答

1

您可以使用geom_segment。首先将目标纬度/长度添加到数据库中

lat<-40.853988 
long<--74.829055 
event$lat1 <- lat 
event$long1 <- long 

ggplot(event, aes(x=Long, y=Lat)) + 
    geom_point(color="darkred", size=2, alpha=.3) + 
    geom_point(aes(x=long, y=lat), color="blue", size=3) + 
    geom_segment(aes(xend = long1, yend = lat1)) 
0

这样的事情呢?它的作用是模拟结构geom_path为不同的群体,其中每个组是从原来的一个点DF

require(dplyr) 
require(ggplot2) 
EventCoords <- event %>% mutate(Lat=lat, Long=long,order=2,group=1:nrow(event)) 
event <- event %>% mutate(group=1:nrow(.),order=1) %>% rbind(EventCoords) 
P1 <- ggplot(event, aes(x=Long, y=Lat)) + 
    geom_point(color="darkred", size=2, alpha=.3) + 
    geom_point(aes(x=long, y=lat), color="blue", size=3) 
P1 <- P1 + geom_path(aes(group=group)) 

enter image description here