R ggplot 连接地图上的一个点和同一张地图上的多个点
R ggplot connecting one point on a map with multiple points on the same map
我正在尝试将美国地图上的一个位置与美国地图上的多个位置连接起来。
library(tidyverse)
library(flights13)
首先,我选择 2013 年 1 月 1 日从纽瓦克机场 (EWR) 起飞的所有航班,并获取目的地的地理坐标(如果在小标题 airports 中可用 - 和在顶部添加 EWR 的位置):
ewr <- flights %>%
filter(year== 2013, month== 1, day== 1, origin== "EWR") %>%
select(dest) %>%
distinct(dest) %>%
arrange(dest)
# Join it with airports database, add column "origin" filled with EWR:
mydest <- ewr %>%
left_join(select(airports, faa, lat, lon),
by = c("dest" = "faa")) %>%
filter(!is.na(lat)) %>%
select(lat, lon)
mydest
# Grab EWR coords:
ewrcoords <- airports %>%
filter(faa == "EWR") %>%
select(lat, lon)
ewrcoords
mydest <- rbind(ewrcoords, mydest)
然后,我想将 EWR(纽瓦克)位置与所有目的地位置连接起来。我尝试使用循环来完成它,但它在 ggplot
:
内部不起作用
mydest %>%
ggplot(aes(lon, lat)) +
borders("state") +
geom_point() +
coord_quickmap() %>%
for(i in 2:nrow(mydest)) {
geom_line(data = mydest[c(1,i),], aes(lon, lat),
color = "black", size = 1)
}
是否可以不用循环呢?或者我怎样才能使循环工作?
非常感谢!
试试这个:
colnames(ewrcoords) = c("EWRlat", "EWRlon")
mydest <- cbind(ewrcoords, mydest)
mydest %>%
ggplot(aes(lon, lat)) +
borders("state") +
geom_point() +
geom_segment(aes(y=EWRlat, x=EWRlon, xend=lon, yend=lat))+
coord_quickmap()
编辑:抱歉没有看到它已经在 eipi10 的评论中。
我正在尝试将美国地图上的一个位置与美国地图上的多个位置连接起来。
library(tidyverse)
library(flights13)
首先,我选择 2013 年 1 月 1 日从纽瓦克机场 (EWR) 起飞的所有航班,并获取目的地的地理坐标(如果在小标题 airports 中可用 - 和在顶部添加 EWR 的位置):
ewr <- flights %>%
filter(year== 2013, month== 1, day== 1, origin== "EWR") %>%
select(dest) %>%
distinct(dest) %>%
arrange(dest)
# Join it with airports database, add column "origin" filled with EWR:
mydest <- ewr %>%
left_join(select(airports, faa, lat, lon),
by = c("dest" = "faa")) %>%
filter(!is.na(lat)) %>%
select(lat, lon)
mydest
# Grab EWR coords:
ewrcoords <- airports %>%
filter(faa == "EWR") %>%
select(lat, lon)
ewrcoords
mydest <- rbind(ewrcoords, mydest)
然后,我想将 EWR(纽瓦克)位置与所有目的地位置连接起来。我尝试使用循环来完成它,但它在 ggplot
:
mydest %>%
ggplot(aes(lon, lat)) +
borders("state") +
geom_point() +
coord_quickmap() %>%
for(i in 2:nrow(mydest)) {
geom_line(data = mydest[c(1,i),], aes(lon, lat),
color = "black", size = 1)
}
是否可以不用循环呢?或者我怎样才能使循环工作? 非常感谢!
试试这个:
colnames(ewrcoords) = c("EWRlat", "EWRlon")
mydest <- cbind(ewrcoords, mydest)
mydest %>%
ggplot(aes(lon, lat)) +
borders("state") +
geom_point() +
geom_segment(aes(y=EWRlat, x=EWRlon, xend=lon, yend=lat))+
coord_quickmap()
编辑:抱歉没有看到它已经在 eipi10 的评论中。