我使用以下代码制作地图:
ggplot() + geom_sf()
该地图显示正常,但是度数符号显示不正确,如下图所示。
在Stack Overflow上给出的答案 - degree symbol incorrect in map axis labels - 对我没有帮助,因为我看到的是不同的符号。
更改字体也没有效果。
我尝试在另一个项目中使用renv
从Github安装当前版本的sf
(0.9),但结果相同。
我正在使用Linux系统,Fedora 31。
要复制此问题:
library("ggplot2")
library("sf")
nc <- st_read(system.file("shape/nc.shp", package="sf"))
ggplot() +
geom_sf(data = nc)
2019-03-15更新
该问题并非特定于ggplot / geom_sf; 如评论中提到的那样,我使用plot.new(); text(0.5,0.5, bquote(120*degree*N), cex=5)
时遇到相同的问题。
另外,为了澄清,我没有与?X11()
帮助文档中详细描述的Wine相关的问题。 如果在我的终端中运行fc-match Symbol
,我会得到:
StandardSymbolsPS.t1:“Standard Symbols PS”“正常”
更新2019-03-19
在新的Fedora 31和Fedora 32 beta安装中进行了确认。 可能是Fedora的问题。
我尝试使用不同的语言环境(包括例如“en_US.UTF-8”或“German”)和设备(例如cairo_pdf()
,cairo_ps()
),结果相同。
X11.options()显示类型为“cairo”(将其更改为Xlib或dbcairo不会更改结果)。
使用dww在下面的答案中提出的TestChars()
函数显示如下:
但是,如果我使用knitr将其编织为pdf,则会获得大多数符号,包括°。
如果我编织为html,则会出现通常的乱码。
2020-03-20更新
正如@jpmam1所建议的那样,这似乎与pango
中的回归有关,可以通过降级pango
来暂时修复。 但是,降级pango会破坏操作系统的其他核心部分,例如nautilus
。
我在Fedora上开了一个bug:https://bugzilla.redhat.com/show_bug.cgi?id=1815128
plot.new(); text(0.5,0.5, bquote(120*degree*N), cex=5)
,你会得到什么?请注意不要改变原来的意思。 - dwwpdf.options(encoding = 'ISOLatin2')
来解决它。 - Jindra Lacko