1

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

在 R 中将 unicode 字符保存为 .pdf

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", plot = carshwyplot,
       width = 12, height = 6, dpi = 300, device = cairo_pdf)

有什么建议么?

4

2 回答 2

0

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

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

ggsave(文件名 = “carshwyplot.pdf”,绘图 = carshwyplot,宽度 = 12,高度 = 6,dpi = 300,设备 = cairo_pdf)`

于 2021-02-03T01:34:15.867 回答
0

添加 unicode 字体名称,例如 Japan1。

ggsave(filename = "carshwyplot1.pdf", plot = carshwyplot,
       width = 12, height = 6, dpi = 300, device = cairo_pdf, Family = "Japan1")
于 2021-01-31T03:23:24.657 回答