[英]maps r plot distances with color on these
也许您有个主意可以帮助我。 我有以下数据:
lon.x <- c(11.581981, 13.404954, 9.993682, 7.842104 , 11.741185)
lat.x <- c(48.135125, 52.520007, 53.551085, 47.999008, 48.402880)
lon.y <- c(8.801694, 7.842104 , 11.581981, 13.404954, 7.842104 )
lat.y <- c(53.079296,47.999008, 48.135125, 52.520007, 47.999008)
pred <- c(1,2,3,4,5)
data <- data.frame(cbind(lon.x, lat.x, lon.y, lat.y, pred))
其中“ lon.x”和“ lat.x”是一个城市的经纬度点,是另一个城市的“ lon.y”和“ lat.y”。 因此,有成对的城市。
现在,我想用
(1)x和y坐标之间的直接距离为一条线
(2)会根据变量“ pred”接收不同的颜色,对于较高的值,它可以是红色,对于较低或较粗的线,其“ pred”的值可以是蓝色。
结果应该是一张简单的地图,在城市之间具有基于变量“ pred”的形状。 例如,第一对城市之间的线会更细,而最后一对城市之间的线会更粗。 那可能吗?
我目前仅能收到一张德国(非常复杂)的Google地图:
library(mapproj)
map <- get_map(location = 'Germany', zoom = 6.2)
ggmap(map)
但是我不确定如何绘制点,尤其是基于“ pred”的点之间的关系。 另外一个非常简单的地图(不是那么详细的谷歌地图)将是最好的! 任何想法? 谢谢!
您可以使用ggplot2
将线添加到绘图上。
library(ggplot2)
library(ggmap)
map <- get_map(location = 'Germany', zoom = 6)
ggmap(map) +
geom_segment(data=data, aes(x=lon.x, xend=lon.y, y=lat.x, yend=lat.y, color=pred), size=2) +
scale_color_continuous(high="red", low="blue")
至于更简单的地图,您可以从www.gadm.org下载形状文件(仅是国家的轮廓)。 级别0的地图仅是国家/地区,级别1的国家边界等。要使用其中的一种,请从网站上下载文件并使用以下代码:
load("DEU_adm0.RData")
gadm <- fortify(gadm)
ggplot(gadm) +
geom_path(aes(x=long, y=lat, group=group)) +
geom_segment(data=data, aes(x=lon.x, xend=lon.y, y=lat.x, yend=lat.y, color=pred), size=2) +
scale_color_continuous(high="red", low="blue")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.