我今天花了一整天的时间来解决这个问题。我发现了大量的旧帖子没有解决这个问题的实际解决方案。
我有一个自定义字体 - 它已加载,已安装,当我在 font_families() 下查看时它会出现。
当我生成绘图时,字体显示正确,但当我使用 ggsave 导出它时,字体完全消失。
MWE 代码:
a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
ggtitle("Fuel Efficiency of 32 Cars") +
xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
theme(text=element_text(size=16, family="Larsseit-BoldItalic"))
a
ggsave(filename = "~/Desktop/test_plot.png",
plot=a,
width= 5.64*2,
height=3.58*2,
#height=26/(10/3.125),
dpi=300)
预期输出:
实际输出:
session 信息:
sessioninfo::session_info()
─ Session info ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
setting value
version R version 4.2.1 (2022-06-23)
os macOS Monterey 12.6.1
system x86_64, darwin17.0
ui RStudio
language (EN)
collate en_US.UTF-8
ctype en_US.UTF-8
tz America/Chicago
date 2022-11-11
rstudio 2022.07.0+548 Spotted Wakerobin (desktop)
pandoc NA
─ Packages ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
package * version date (UTC) lib source
assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.2.0)
cli 3.3.0 2022-04-25 [1] CRAN (R 4.2.0)
colorspace 2.0-3 2022-02-21 [1] CRAN (R 4.2.0)
DBI 1.1.3 2022-06-18 [1] CRAN (R 4.2.0)
digest 0.6.29 2021-12-01 [1] CRAN (R 4.2.0)
dplyr 1.0.9 2022-04-28 [1] CRAN (R 4.2.0)
fansi 1.0.3 2022-03-24 [1] CRAN (R 4.2.0)
farver 2.1.1 2022-07-06 [1] CRAN (R 4.2.0)
generics 0.1.3 2022-07-05 [1] CRAN (R 4.2.0)
ggplot2 * 3.3.6 2022-05-03 [1] CRAN (R 4.2.0)
glue 1.6.2 2022-02-24 [1] CRAN (R 4.2.0)
gtable 0.3.0 2019-03-25 [1] CRAN (R 4.2.0)
labeling 0.4.2 2020-10-20 [1] CRAN (R 4.2.0)
lifecycle 1.0.1 2021-09-24 [1] CRAN (R 4.2.0)
magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.2.0)
munsell 0.5.0 2018-06-12 [1] CRAN (R 4.2.0)
pillar 1.8.0 2022-07-18 [1] CRAN (R 4.2.1)
pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.2.0)
purrr 0.3.4 2020-04-17 [1] CRAN (R 4.2.0)
R6 2.5.1 2021-08-19 [1] CRAN (R 4.2.0)
rlang 1.0.4 2022-07-12 [1] CRAN (R 4.2.0)
rstudioapi 0.13 2020-11-12 [1] CRAN (R 4.2.0)
scales 1.2.0 2022-04-13 [1] CRAN (R 4.2.0)
sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.2.0)
tibble 3.1.8 2022-07-22 [1] CRAN (R 4.2.0)
tidyselect 1.1.2 2022-02-21 [1] CRAN (R 4.2.0)
utf8 1.2.2 2021-07-24 [1] CRAN (R 4.2.0)
vctrs 0.4.1 2022-04-13 [1] CRAN (R 4.2.0)
withr 2.5.0 2022-03-03 [1] CRAN (R 4.2.0)
[1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
最佳答案
这个答案完全归功于@Abigail。首先,我在绘图之前添加了 showtext_auto()
,这使得 ggsave 正常工作,但问题是文本行之间存在额外的间距。
我在 showtext github 上找到了关于这个问题的讨论 here 。问题是 ggsave 和 showtext dpi 默认值不同(分别为 300 和 96)。因此,在绘图之前添加 showtext_opts(dpi = 300)
也解决了该问题。
最终代码,以及解决方案,如下:
library(ggplot2)
showtext::showtext_auto()
showtext::showtext_opts(dpi = 300)
a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
ggtitle("Fuel Efficiency of 32 Cars") +
xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
theme(text=element_text(size=16, family="Larsseit-BoldItalic"))
a
ggsave(filename = "~/Desktop/test_plot.png",
plot=a,
width= 5.64*2,
height=3.58*2,
dpi=300)
关于r - 我不知所措 - ggplot2::ggsave 不会导出自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74408392/