Skip to contents
fao_settings(lang = "zh")   # 本文所有图表使用中文
📦 数据来源:FAO全球捕捞产量(Global Capture Production)2026.1.0版(FAO于2026-03-30发布,1950–2024年),下载地址Capture_2026.1.0.zip,许可证CC BY 4.0。用fao_data_info()查看你使用的版本和引用格式。

所有图表和地图都遵循少数几项设置,每个R会话中用fao_settings()设置一次即可。不带参数运行它可以查看当前设置:

fao_settings()
#>   lang            en
#>   theme           bw
#>   base_size       12
#>   palette         npg
#>   map_palette     deep-orange
#>   map_center      0
#>   map_projection  longlat
#>   map_land        grey90
#>   map_ocean       NA
#>   grid            FALSE
#>   dpi             600
#>   pptx            FALSE
#>   data_dir        C:/Users/<you>/AppData/Roaming/R/data/R/faofishingreport
#>   online          TRUE
#>   sst             ersst5
#>   silent          FALSE
#>   show_data       TRUE
#>   plot_show       FALSE
#>   font            SimSun

fao_settings(...)以名称 = 取值的形式接收设置,另外还有一个参数reset:

参数 含义 默认值
... 要修改的设置,形式为名称 = 取值(见下表)
reset 设为TRUE时先把所有设置恢复为默认值 FALSE

各项设置:

设置 可选值 默认值
lang 图表语言:"en"、"zh"、"both";函数自身的lang参数优先 "en"
theme "bw"、"classic"、"minimal"、"light"、"linedraw"、"gray"、"dark",或任意ggplot2主题对象;地图和饼图保持简洁主题 "bw"
base_size 主题的基础字号 12
font 图表文字的字体(见字体) 根据操作系统自动选择
palette 分类配色(国家、物种、分组):ggsci色板("npg"、"lancet"等)、RColorBrewer色板("Set1"等)、基础R色板(grDevices::palette.pals(),如"Okabe-Ito";grDevices::hcl.pals(),如"viridis"),或一组颜色 "npg"
map_palette 地图配色:ggsci的Material Design色板("deep-orange"、"blue"、"teal"等)、RColorBrewer色板("YlOrRd"、"Blues"等)、viridis系列("viridis"、"magma"、"plasma"、"inferno"、"cividis"、"mako"、"rocket"、"turbo")、grDevices::hcl.pals()中的名称,或一组颜色 "deep-orange"
map_center 地图的中心经度:0(经度-180到180,大西洋居中)或180(经度0到360,太平洋居中);也可以写成"-180-180"和"0-360" 0
map_projection "longlat"、"robinson"、"mollweide"、"equal_earth"、"winkel_tripel"、"mercator",或PROJ字符串、EPSG代码(此时不使用map_center) "longlat"
map_land 地图上无数据国家的颜色 "grey90"
map_ocean 地图上海洋的颜色 NA(不填充)
grid 背景网格线(地图上为经纬网) FALSE
dpi PNG文件的分辨率 600
pptx 同时保存可编辑的PowerPoint文件(使用eoffice包) FALSE
data_dir 下载的FAO数据所在的文件夹(见💾 FAO数据) NULL:R的用户数据文件夹,见fao_data_dir()
online 是否允许函数联网查找FishBase的最新版本;设为FALSE时离线使用已下载的数据(见🐠 FishBase) TRUE
sst fao_area_sst()和mean_temperature_catch()使用的海表温度数据:"ersst5"(内置)、用download_sst_data()下载的数据产品(如"hadisst1"),或自己的NetCDF文件或文件夹的路径(见🌡️ 海表温度) "ersst5"
silent CMSY++函数是否不显示进度条和提示信息;函数自身的silent参数优先(见📉 CMSY++) FALSE
show_data 函数运行结束时是否在控制台显示结果摘要(分析对象、主要结果表、保存的文件、返回结果包含的部分);结果以不可见的方式返回 TRUE
plot_show 保存图表的同时是否把图画在绘图窗口中(RStudio的Plots窗格);函数自身的plot_show参数优先 FALSE

fao_settings(reset = TRUE)恢复全部默认设置。设置名称或取值有误时会立即报错,并列出可用的选项。每项设置都保存为R选项faofishingreport.<名称>,因此也可以用options()设置,例如写在.Rprofile文件中。fao_settings()以不可见的方式返回当前设置组成的列表。

🌐 语言

每个分析函数都有lang参数;fao_settings(lang = ...)会统一修改所有函数的默认语言。"both"同时显示中文和英文,例如“百万吨 (Million Tonnes)”和“挪威 Norway”。

fao_settings(lang = "zh")
fishing_area_country(FAO27$area_data, rank_range = 1:6)
area_country.png
fao_settings(lang = "both")
fishing_area_country(FAO27$area_data, rank_range = 1:6)
area_country.png

用fao_settings(lang = "zh")即可恢复为中文。旧参数ZH = TRUE仍然可用,等同于lang = "zh"。

🖼️ 主题

fao_settings(theme = "classic")
fishing_area_country(FAO27$area_data, rank_range = 1:6)
area_country.png
fao_settings(theme = "minimal", base_size = 14)
fishing_area_country(FAO27$area_data, rank_range = 1:6)
area_country.png

也可以使用任意ggplot2主题,例如fao_settings(theme = ggplot2::theme_light(base_size = 13))。

🎨 色板

palette决定国家、物种和分组的颜色:

fao_settings(theme = "bw", base_size = 12, palette = "lancet")
fishing_area_country(FAO27$area_data, rank_range = 1:6)
area_country.png
fao_settings(palette = "Okabe-Ito")        # 色盲友好
fishing_area_country(FAO27$area_data, rank_range = 1:6)
area_country.png
fao_settings(palette = c("#0B2E5B", "#16A6B6", "#F28E2B", "#E15759", "#59A14F", "#B07AA1"))
fishing_area_country(FAO27$area_data, rank_range = 1:6)
fao_settings(palette = "npg")
area_country.png

可用的色板包括ggsci包的"npg"、"aaas"、"nejm"、"lancet"、"jama"、"jco"、"d3";RColorBrewer的"Set1"、"Set2"、"Dark2"、"Paired";以及基础R中grDevices::palette.pals()(如适合色盲读者的Okabe-Ito色板,Okabe和Ito 2008)和grDevices::hcl.pals()(Zeileis等2020)列出的色板。类别数超过色板的颜色数时,会自动插值补足颜色。

🗺️ 地图投影

同一张地图(各国在27区的产量)在各种投影下的效果:

fao_settings(map_projection = "longlat")      # 普通经纬度坐标(默认)
fishing_area_data("Atlantic, Northeast")
area_country_map.png
fao_settings(map_projection = "robinson")
fishing_area_data("Atlantic, Northeast")
area_country_map.png
fao_settings(map_projection = "equal_earth")
fishing_area_data("Atlantic, Northeast")
area_country_map.png
fao_settings(map_projection = "mollweide")
fishing_area_data("Atlantic, Northeast")
area_country_map.png
fao_settings(map_projection = "winkel_tripel")
fishing_area_data("Atlantic, Northeast")
area_country_map.png
fao_settings(map_projection = "mercator")
fishing_area_data("Atlantic, Northeast")
area_country_map.png

各种命名投影及其对应的PROJ投影(地图由sf绘制,sf使用PROJ库进行投影):

map_projection 投影 PROJ 特点
"longlat" 普通经纬度坐标(等距圆柱投影) EPSG:4326;map_center = 180时为+proj=eqc 简单;离赤道越远,面积放大越多
"robinson" Robinson投影(Robinson 1974) +proj=robin 折中的世界地图投影,既不等积也不等角
"equal_earth" Equal Earth投影(Šavrič等2019) +proj=eqearth 等积投影,纬线为直线
"mollweide" Mollweide投影(Snyder 1987) +proj=moll 等积投影,外轮廓为椭圆
"winkel_tripel" Winkel tripel投影 +proj=wintri 折中的世界地图投影,总体变形较小
"mercator" Mercator投影(Snyder 1987) +proj=merc 等角投影;越靠近两极面积放大越多,截取南纬80°至北纬84°

其他投影可以用PROJ字符串或EPSG代码指定,例如fao_settings(map_projection = "+proj=natearth")或"EPSG:3857"。

🌏 太平洋居中地图

map_center = 180显示经度0到360,太平洋位于地图中央。数据中在日期变更线处被切开的渔区和国家(如太平洋各渔区、俄罗斯)会重新拼合在一起:

fao_settings(map_projection = "robinson", map_center = 180)
fishing_area_data("Pacific, Northwest")
area_country_map.png

渔区地图中的陆地不绘制国界,所分析的国家以红色显示:

Norwayfishing_area_map.png

国家轮廓来自Natural Earth的1:50m地图单元,通过ISO 3代码与FAO国家匹配;渔区边界来自FAO主要渔区图层,并为世界地图做了简化。

🖌️ 地图配色

fao_settings(map_projection = "robinson", map_center = 0, map_palette = "viridis")
fishing_area_data("Atlantic, Northeast")
area_country_map.png
fao_settings(map_palette = "YlOrRd", map_land = "grey85", map_ocean = "#EAF4FB")
fishing_area_data("Atlantic, Northeast")
area_country_map.png

fishing_area_data()、species_country()和country_analysis()的fill_scale参数可以在单次调用中覆盖map_palette。

🔤 字体

字体会根据操作系统自动选择,以保证中文正常显示:Windows上为SimSun,macOS上为Songti SC,Linux上为Noto Serif CJK SC;如果这些字体不可用,则选用系统中已安装的下一个中文字体(都没有时为"sans")。可以这样修改字体:

fao_font()                            # 查看当前字体
fao_settings(font = "Microsoft YaHei")

fao_font()只有一个参数:

参数 含义 默认值
family 此后使用的字体,如"Microsoft YaHei";为NULL时只返回当前字体 NULL

函数返回字体名称。fao_settings(font = ...)、fao_font(...)和options(faofishingreport.font = ...)的效果相同。各系统依次尝试的字体:

系统 字体(按顺序)
Windows SimSun、NSimSun、Microsoft YaHei、SimHei、DengXian、KaiTi
macOS Songti SC、STSong、PingFang SC、Heiti SC、Hiragino Sans GB、Arial Unicode MS
Linux Noto Serif CJK SC、Noto Sans CJK SC、Source Han Serif SC、Source Han Sans SC、WenQuanYi Zen Hei、WenQuanYi Micro Hei、AR PL UMing CN

已安装的字体由systemfonts包列出。PNG文件由ragg包绘制,它可以按名称找到任何已安装的字体;PowerPoint文件使用相同的字体名称。

📐 网格线、分辨率和PowerPoint

fao_settings(grid = TRUE)
fishing_area_country(FAO27$area_data, rank_range = 1:6)
fao_settings(grid = FALSE)
area_country.png

PowerPoint文件由eoffice包生成,它会随faofishingreport一起安装;在macOS上还需要安装XQuartz。

fao_settings(dpi = 300)      # PNG文件更小
fao_settings(pptx = TRUE)    # 同时在figures/pptx/中保存可编辑的PowerPoint
fishing_area_species(FAO27$area_data, pptx = TRUE)   # 或只对单次调用生效

⚙️ 各函数的参数

除了上述设置,各分析函数还有各自的参数;其中lang、pptx和fill_scale可以在单次调用中覆盖设置。各篇文章中都有完整的参数表:

函数 全部参数
fishing_area_data()、fishing_area_species()、fishing_area_country()(线宽、点大小、字号和颜色) 🌊 渔区分析
species_country()、country_species()、country_analysis() 🐟 物种与国家分析
check_fao_update()、download_fao_data()、load_fao_data()、fao_data_info()、fao_translate() 💾 FAO数据
汇总分析,如stock_status()、peak_trend() 📈 类群结构、资源状态与趋势、🔍 数据质量、多样性与船队
fao_report() 📝 一键生成评估报告(Word、LaTeX、PDF)

📝 翻译

国家、物种和渔区的中文名称来自FAO。ISSCAAP类群、主要类群和收入组的中文名称(inst/extdata/group_names_zh.csv)以及所有图表标签(inst/extdata/chart_labels.csv)都是普通的CSV文件:如需修改措辞,在包源代码中编辑这些文件,然后重新安装本包即可。

📖 参考文献

FAO (2024). FAO Major Fishing Areas for Statistical Purposes. In: FAO Fisheries and Aquaculture Division [online]. Licence: CC-BY 4.0. https://www.fao.org/fishery/geonetwork?uuid=ac02a460-da52-11dc-9d70-0017f293bd28 (the area boundaries of the fishing area maps, bundled as inst/extdata/FAO_AREAS_CWP.shp)

Guo, K. eoffice: Export or Graph and Tables to ‘Microsoft’ Office and Import Figures and Tables. R package. doi:10.32614/CRAN.package.eoffice

Harrower, M. and Brewer, C.A. (2003). ColorBrewer.org: an online tool for selecting colour schemes for maps. The Cartographic Journal 40(1): 27–37. doi:10.1179/000870403235002042

Massicotte, P. and South, A. rnaturalearth: World Map Data from Natural Earth. R package. doi:10.32614/CRAN.package.rnaturalearth

Natural Earth. Admin 0 – Details, map units, 1:50m. https://www.naturalearthdata.com/downloads/50m-cultural-vectors/50m-admin-0-details/

Okabe, M. and Ito, K. (2008). Color Universal Design (CUD): how to make figures and presentations that are friendly to colorblind people. https://jfly.uni-koeln.de/color/

Pebesma, E. (2018). Simple features for R: standardized support for spatial vector data. The R Journal 10(1): 439–446. doi:10.32614/RJ-2018-009

Pedersen, T.L. and Shemanarev, M. ragg: Graphic Devices Based on AGG. R package. doi:10.32614/CRAN.package.ragg

PROJ contributors (2026). PROJ coordinate transformation software library. Open Source Geospatial Foundation. https://proj.org/. doi:10.5281/zenodo.5884394

Robinson, A.H. (1974). A new map projection: its development and characteristics. International Yearbook of Cartography 14: 145–155.

Šavrič, B., Patterson, T. and Jenny, B. (2019). The Equal Earth map projection. International Journal of Geographical Information Science 33(3): 454–465. doi:10.1080/13658816.2018.1504949

Snyder, J.P. (1987). Map Projections: A Working Manual. U.S. Geological Survey Professional Paper 1395. Washington, DC: U.S. Government Printing Office. doi:10.3133/pp1395

Wickham, H. (2016). ggplot2: Elegant Graphics for Data Analysis. New York: Springer. doi:10.1007/978-3-319-24277-4

Xiao, N. ggsci: Scientific Journal and Sci-Fi Themed Color Palettes for ‘ggplot2’. R package. doi:10.32614/CRAN.package.ggsci

Zeileis, A., Fisher, J.C., Hornik, K., Ihaka, R., McWhite, C.D., Murrell, P., Stauffer, R. and Wilke, C.O. (2020). colorspace: a toolbox for manipulating and assessing colors and palettes. Journal of Statistical Software 96(1): 1–49. doi:10.18637/jss.v096.i01