fao_settings(lang = "zh") # 本文所有图表使用中文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 SimSunfao_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)
fao_settings(lang = "both")
fishing_area_country(FAO27$area_data, rank_range = 1:6)用fao_settings(lang = "zh")即可恢复为中文。旧参数ZH = TRUE仍然可用,等同于lang = "zh"。
🖼️ 主题
fao_settings(theme = "classic")
fishing_area_country(FAO27$area_data, rank_range = 1:6)
fao_settings(theme = "minimal", base_size = 14)
fishing_area_country(FAO27$area_data, rank_range = 1:6)也可以使用任意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)
fao_settings(palette = "Okabe-Ito") # 色盲友好
fishing_area_country(FAO27$area_data, rank_range = 1:6)
fao_settings(palette = c("#0B2E5B", "#16A6B6", "#F28E2B", "#E15759", "#59A14F", "#B07AA1"))
fishing_area_country(FAO27$area_data, rank_range = 1:6)
fao_settings(palette = "npg")可用的色板包括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")
fao_settings(map_projection = "robinson")
fishing_area_data("Atlantic, Northeast")
fao_settings(map_projection = "equal_earth")
fishing_area_data("Atlantic, Northeast")
fao_settings(map_projection = "mollweide")
fishing_area_data("Atlantic, Northeast")
fao_settings(map_projection = "winkel_tripel")
fishing_area_data("Atlantic, Northeast")
fao_settings(map_projection = "mercator")
fishing_area_data("Atlantic, Northeast")各种命名投影及其对应的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")渔区地图中的陆地不绘制国界,所分析的国家以红色显示:
country_analysis("Norway")国家轮廓来自Natural Earth的1:50m地图单元,通过ISO 3代码与FAO国家匹配;渔区边界来自FAO主要渔区图层,并为世界地图做了简化。
🖌️ 地图配色
fao_settings(map_projection = "robinson", map_center = 0, map_palette = "viridis")
fishing_area_data("Atlantic, Northeast")
fao_settings(map_palette = "YlOrRd", map_land = "grey85", map_ocean = "#EAF4FB")
fishing_area_data("Atlantic, Northeast")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)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可以在单次调用中覆盖设置。各篇文章中都有完整的参数表:
📝 翻译
国家、物种和渔区的中文名称来自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
