R:在R中缩放地图的问题(readOGR,ggplot)

时间:2015-08-12 06:49:58

标签: r dictionary ggplot2

我导入欧洲地区的形状文件,包括。 R在俄罗斯使用

ERMap <- readOGR(dsn = sfPath, layer = "general_2011_onlyEURO")
positions <- fortify(ERMap, region = "ISO_3_CODE") 

我使用plot(ERMap)绘制原始地图。问题1:俄罗斯最东部地区被切断并出现在地图的最西部。

我将一些数据分配给地图区域的国家/地区,最后使用

获取最终地图
p <- ggplot() +
    geom_polygon(data = plotData, aes(x = long, y = lat, group = group,
    fill =  plotData$value), color = "black", size = 0.25)

问题2:除了切断之外,地图也是水平压缩的。

导入的形状文件(ERMap):

Object of class SpatialPolygonsDataFrame
Coordinates:
         min       max
x -179.99891 179.99841
y   29.48892  81.49686
Is projected: FALSE 
proj4string :
[+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0]
Data attributes:
      CNTRY_TERR      SOVEREIGN    ISO_3_CODE   ISO_2_CODE    UN_CODE         WHO_CODE    WHO_REGION
 Albania   : 1   Albania   : 1   ALB    : 1   AD     : 1   Min.   :  0.0   Min.   :   0   EURO:53   
 Andorra   : 1   Andorra   : 1   AND    : 1   AL     : 1   1st Qu.:203.0   1st Qu.:4030             
 Armenia   : 1   Armenia   : 1   ARM    : 1   AM     : 1   Median :398.0   Median :4180             
 Austria   : 1   Austria   : 1   AUT    : 1   AT     : 1   Mean   :412.4   Mean   :3954             
 Azerbaijan: 1   Azerbaijan: 1   AZE    : 1   AZ     : 1   3rd Qu.:643.0   3rd Qu.:4260             
 Belarus   : 1   Belarus   : 1   BEL    : 1   BA     : 1   Max.   :860.0   Max.   :4335             
 (Other)   :47   (Other)   :47   (Other):47   (Other):47                                            
        WHO_STATUS   REAL_VALUE    
 Member state:53   Min.   :0.0000  
                   1st Qu.:0.0000  
                   Median :0.0000  
                   Mean   :0.4717  
                   3rd Qu.:0.0000  
                   Max.   :7.0000 

我的绘图数据看起来像那样

   id     long      lat group   value
1 ALB 19.69318 42.67708 ALB.1 5.67525
2 ALB 20.54673 42.25031 ALB.1 5.67525
3 ALB 20.50406 41.22604 ALB.1 5.67525
4 ALB 21.10155 40.73524 ALB.1 5.67525
5 ALB 20.80280 40.09507 ALB.1 5.67525
6 ALB 20.11996 39.54026 ALB.1 5.67525

情节数据汇总

> summary(plotData)
       id            long              lat            group          value       
 SMR    : 368   Min.   :-180.00   Min.   :29.49   AND.1  : 361   Min.   : 4.182  
 AND    : 367   1st Qu.:   6.40   1st Qu.:41.04   MCO.1  : 361   1st Qu.: 7.339  
 MCO    : 361   Median :  14.23   Median :43.51   SMR.1  : 361   Median : 9.081  
 RUS    : 323   Mean   :  24.07   Mean   :47.06   RUS.1  : 231   Mean   : 9.551  
 KAZ    :  54   3rd Qu.:  28.80   3rd Qu.:49.95   KAZ.1  :  54   3rd Qu.:13.470  
 FRA    :  52   Max.   : 180.00   Max.   :81.50   NOR.1  :  49   Max.   :14.602  
 (Other):1070                                     (Other):1178   NA's   :1029  

我在R中使用maps / ggplot非常新,非常感谢一些提示,从哪里开始解决这些问题。

我的问题是:

  • 如何避免切断地图的某些部分?
  • 如何缩放地图以避免垂直压缩?

1 个答案:

答案 0 :(得分:0)

我不确定这是否有帮助,但在绘制数据之前强化数据可能是个好主意。

ERmap.f<-fortify(ERmap)

与垂直压缩相比,它有助于在ggplot中使用coord_map()函数,如下所示:

p <- ggplot() +
    geom_polygon(data = ERmap.f, aes(x = long, y = lat, group = group,
    fill =  plotData$value), color = "black", size = 0.25)+
    coord_map()