r - 绘制 R 地区粮农组织捕鱼区 map

标签 r ggplot2 graphics geospatial

我想用 R 制作一张 map ,根据数据集(在我的例子中,是鲨鱼物种的长度数据)对粮农组织捕鱼区进行着色。

FAO Fishing Areas

我更喜欢在 ggplot 中制作分区统计图,但其他类型的 map 也可以。最坏的情况是我可以添加气泡的粮农组织区域 basemap 。即使只是一份现有的粮农组织地区 basemap 也很棒。欢迎任何建议!

最佳答案

我去了this page然后点击找到this link检索 GeoJSON 文件:

download.file("http://www.fao.org/fishery/geoserver/fifao/ows?service=WFS&request=GetFeature&version=1.0.0&typeName=fifao:FAO_AREAS_CWP&outputFormat=json", dest="FAO.json")

从现在开始,我就关注this example from the R graph gallery ,在 this SO question 的帮助下和 these notes :

library(geojsonio)
library(sp)
library(broom)
library(ggplot2)
library(dplyr)    ## for joining values to map

spdf <- geojson_read("FAO.json",  what = "sp")

此时,plot(spdf) 将显示区域的普通(base-R)图。

spdf_fortified <- tidy(spdf)
## make up some data to go with ...
fake_fish <- data.frame(id = as.character(1:324), value = rnorm(324))
spdf2 <- spdf_fortified %>% left_join(fake_fish, by = "id")
ggplot() +
    geom_polygon(data = spdf2, aes( x = long, y = lat, group = group,
                                            fill = value), color="grey") +
    scale_fill_viridis_c() +
    theme_void() +
    theme(plot.background = element_rect(fill = 'lightgray', colour = NA)) +
    coord_map() +
    coord_sf(crs = "+proj=cea +lon_0=0 +lat_ts=45") ## Gall projection

ggsave("FAO.png")

Gall projection

注释

  • 某些步骤很慢,可能值得研究一下如何粗化/降低空间多边形对象的分辨率(如果您只想显示图片,分辨率水平可能会过大)
  • 说实话,默认的顺序配色方案可能会更好,但现在所有酷 child 似乎都喜欢“viridis”,所以......
  • 可能有更好的方法来完成很多这些工作(例如设置 map 投影、填充陆地 block 的背景颜色……?)

关于r - 绘制 R 地区粮农组织捕鱼区 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68472014/

相关文章:

java - 如何在SWT中使用圆角填充矩形实现透明度?

c++ - OpenGL 顶点属性未启用

r - grid.Call(L_textBounds,as.graphicsAnnot(x $ label),x $ x,x $ y,: polygon edge not found (new)中的错误

r - +r +ggplot +jpeg +背景 +透明

r - 将 grid.text 添加到 ggplot 时出错

r - 将 R ggplot 中密度图中的 y 轴归一化为按组比例

r - 合并列以删除 NA

r - 查询文本指定 use_legacy_sql :false,,而 API 选项指定:true

r - write.table 将 NaN 转换为 NA

performance - Webgl:低 fps 和约 72% 的空闲时间