Convert map data to data frame using fortify {ggplot2} for spatial objects in R

后端 未结 2 1167
北荒
北荒 2020-12-16 06:47

I use to be able to run this script without any problem, but now the fortify {ggplot2} command gives me an error message. Any hint of what might be the problem would be grea

相关标签:
2条回答
  • 2020-12-16 07:04

    I got it to work in ggplot2 and here is how I did it with the version and session info at the bottom.

    The Map in ggplot2

    fishing zones

    The Code

    rm(list = ls(all = TRUE)) #clear workspace
    
    library(maptools)
    library(gpclib)
    library(ggplot2)
    
    shape<-readShapeSpatial("./fao/World_Fao_Zones.shp") 
    shape@data$id <- rownames(shape@data)
    shape.fort <- fortify(shape, region='id') 
    shape.fort<-shape.fort[order(shape.fort$order), ] 
    ggplot(data=shape.fort, aes(long, lat, group=group)) + 
        geom_polygon(colour='black',
                     fill='white') +
        theme_bw()
    

    The Session

    > sessionInfo()
    R version 2.15.0 (2012-03-30)
    Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
    
    locale:
        [1] C/en_US.UTF-8/C/C/C/C
    
    attached base packages:
        [1] grid      stats     graphics  grDevices utils    
    [6] datasets  methods   base     
    
    other attached packages:
        [1] mapproj_1.1-8.3 gpclib_1.5-1    maptools_0.8-14
    [4] lattice_0.20-6  foreign_0.8-49  rgeos_0.2-5    
    [7] stringr_0.6     sp_0.9-99       gridExtra_0.9  
    [10] mapdata_2.2-1   ggplot2_0.9.0   maps_2.2-5     
    
    loaded via a namespace (and not attached):
        [1] MASS_7.3-17        RColorBrewer_1.0-5 colorspace_1.1-1  
    [4] dichromat_1.2-4    digest_0.5.2       memoise_0.1       
    [7] munsell_0.3        plyr_1.7.1         proto_0.3-9.2     
    [10] reshape2_1.2.1     scales_0.2.0       tools_2.15.0
    
    0 讨论(0)
  • 2020-12-16 07:05

    Fortify is likely to be deprecated. A new alternative is broom (see documentation here). It is very simply to use:

    # Load shapefile
    FAO <- readOGR(dsn="fao", layer="World_Fao_Zones")
    #Convert
    FAO_df <- tidy(FAO)
    

    Unfortunately, the file you uploaded is not there anymore, so I cannot demonstrate the command for your example.

    0 讨论(0)
提交回复
热议问题