【问题标题】:maps r plot distances with color on these在这些上用颜色映射 r 绘图距离
【发布时间】:2015-03-13 03:49:38
【问题描述】:

也许你有一个想法可以帮助我。我有以下数据:

 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”是另一个城市的。所以有成对的城市。

现在,我想用 R 制作一张地图,用

(1) x 和 y 坐标的直线距离

(2) 将根据变量“pred”接收不同的颜色,红色表示较高的值,蓝色表示较低的或较粗的线,“pred”值较高。

结果应该是一张简单的地图,城市之间的线是根据变量“pred”塑造的。例如,第一对城市之间的界线会更细,而最后一对城市会更粗。那可能吗?

我目前只收到了一张(非常复杂的)德国谷歌地图:

              library(mapproj)
              map <- get_map(location = 'Germany', zoom = 6.2)
              ggmap(map)

但我不确定如何绘制点,尤其是基于“pred”不同的点之间的关系。最好还有一个非常简单的地图(不是那么详细的谷歌地图)!任何想法?谢谢!

【问题讨论】:

    标签: r google-maps maps


    【解决方案1】:

    您可以使用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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 2016-09-09
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2018-03-19
      相关资源
      最近更新 更多