地图轴标签中的度数符号不正确

dww*_*dww 5 r ggplot2 plotmath

如果我使用 来创建地图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。不确定还有哪些其他信息可能相关,但我可以用其他任何要求更新答案。

小智 9

我遇到了类似的问题,在阅读此处和其他一些相关问题后,我找到了解决方案。我正在使用 Rstudio,所以我想如果你在没有它的情况下使用 R,你会很容易找到你的工作(希望如此)。

我的解决方案是“工具”->“全局选项”,在这里我将后端更改为开罗。

变化看起来是这样的:

在此输入图像描述


dww*_*dww 5

终于设法找到了答案:

从 ?X11 它说:

在安装了 Wine 符号字体的 Linux 系统上已经看到了符号渲染不正确的问题(例如,quote(pi) 和 expression(10^degree))——fontconfig 然后更喜欢这个并误解了它的编码。将以下行添加到“~/.fonts.conf”或“/etc/fonts/local.conf”可以通过首选 URW Type 1 符号字体来避免此问题。

<fontconfig>
<match target="pattern">
  <test name="family"><string>Symbol</string></test>
  <edit name="family" mode="prepend" binding="same">
    <string>Standard Symbols L</string>
  </edit>
</match>
</fontconfig>
Run Code Online (Sandbox Code Playgroud)

添加这些行来/etc/fonts/local.conf解决我的问题。