有没有办法在 macOS Big Sur & R 4.0.3 上使用 ggsave 在绘图中打印 Unicode 字符

问题描述

我正在尝试将包含 unicode 字符(特别是日语,但没关系)的 ggplot2 图打印到 PDF。系统语言环境在 macOS 上是 UTF8,所以我可以在其他任何地方使用 Unicode 字符。 不幸的是, ggsave 只打印点,而不是字符。用其各自的 unicode 代码条目替换每个单独的字符实际上并不可行,因为它太多了。 我已经尝试按照下面的建议以及在许多其他地方使用 Cairo,但这似乎不适用于 macOS 和 R4.0.3,或者它曾经适用于早期的 R 版本但不再适用。

Save unicode characters to .pdf in R

library(ggplot2)
data("cars")

mpg$manufacturer[mpg$manufacturer == "nissan"] <- "日産"

carshwyplot <- ggplot(data=mpg,aes(x=manufacturer,y=hwy)) +
               geom_bar(stat="identity")

ggsave(filename = "carshwyplot.pdf",plot = carshwyplot,width = 12,height = 6,dpi = 300)
R version 4.0.3 (2020-10-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Big Sur 10.16

locale:
[1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8

这对我不起作用,它只是用方形块替换了点。

library(Cairo)
ggsave(filename = "carshwyplot.pdf",dpi = 300,device = cairo_pdf)

有什么建议吗?

解决方法

添加unicode字体名称如Japan1。

ggsave(filename = "carshwyplot1.pdf",plot = carshwyplot,width = 12,height = 6,dpi = 300,device = cairo_pdf,Family = "Japan1")
,

首先,使用 unicode 字体系列(如大阪、HiraKakuProN-W3 等)设置您的主题。然后,尝试 device = Cairo_pdf。

` carshwyplot

ggsave(filename = "carshwyplot.pdf",宽度 = 12,高度 = 6,dpi = 300,设备 = cairo_pdf)`