我制作的任何地图:
ggplot() + geom_sf()
生成预期的地图,但未正确显示度数符号,如下图所示。
这个答案中给出的答案 -地图轴标签中的度数符号不正确- 没有帮助,当我看到不同的标志时,我发布了一个单独的问题。
更改字体无济于事。
我还尝试sf在一个单独的项目中从 Github安装当前版本的(0.9) renv,但结果相同。
我在 Linux 上,Fedora 31。
复制:
library("ggplot2")
library("sf")
nc <- st_read(system.file("shape/nc.shp", package="sf"))
ggplot() +
geom_sf(data = nc)
Run Code Online (Sandbox Code Playgroud)
2019-03-15 更新
该问题并非特定于 ggplot/geom_sf;正如评论中所建议的,我遇到了同样的问题plot.new(); text(0.5,0.5, bquote(120*degree*N), cex=5)

另外,澄清一下,我没有在?X11(). 如果我在我的终端中运行fc-match Symbol,我会得到:
StandardSymbolsPS.t1:“标准符号 PS”“常规”
更新 2019-03-19
在全新的 Fedora 31 和 Fedora 32 beta 安装中得到确认。可能是 Fedora 的问题。
我尝试使用不同的语言环境(包括例如“en_US.UTF-8”或“German”)和设备(例如cairo_pdf(), cairo_ps()),结果相同。
X11.options() 将“cairo”显示为类型(将其更改为 Xlib,或者 dbcairo 不会更改结果)。
使用TestChars()dww在下面的答案中提出的函数显示如下:

但是,如果我用 knitr 编织到 pdf,我会得到大多数符号,包括°。
如果我编织到 …
如果我使用 来创建地图geom_sf,轴标签的度数符号是错误的。我得到的度数符号在文本中垂直居中,而不是像上标一样凸起。
例如,
library(sf)
library(ggplot2)
nc = st_read(system.file("shape/nc.shp", package="sf"))
ggplot() +
geom_sf(data = nc) +
theme(axis.text = element_text(size=16))
Run Code Online (Sandbox Code Playgroud)
当我在网上看到示例时,它们通常看起来是正确的(例如下图,从这里复制),所以我猜这与我本地设置中的某些内容有关。
我曾尝试更改字体,使用library(extrafont)但这个问题仍然存在于我尝试的每种字体中。
我不认为这是一个特定ggplot-问题,因为我得到同样的事情与使用任何图形degree关键字plotmath。例如
par(mar=c(0,0,0,0))
plot.new()
text(0.5,0.5, bquote(120*degree*N), cex=5)
Run Code Online (Sandbox Code Playgroud)
我在Linux(Kubuntu 19.04), R3.5.2, ggplot2v. 3.2.1, sfv. 0.7-7。不确定还有哪些其他信息可能相关,但我可以用其他任何要求更新答案。