首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不知道-ggplot2 2::ggsave将不会导出自定义字体。

我不知道-ggplot2 2::ggsave将不会导出自定义字体。
EN

Stack Overflow用户
提问于 2022-11-11 21:38:45
回答 1查看 33关注 0票数 0

我今天一整天都在努力解决这个问题。我发现了很多旧的职位,没有解决这个问题的实际办法。

我有一个自定义字体-它是加载的,它已经安装,当我在font_families()下面查看时,它会出现。

在生成绘图时,字体会正确显示,但当我使用ggsave导出它时,字体会完全消失。

MWE代码:

代码语言:javascript
复制
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)

预期产出:

实际产出:

会议信息:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2022-11-12 15:25:58

这个答案完全归功于“阿比盖尔”。首先,我在绘图之前添加了showtext_auto(),这使ggsave工作正常,但问题是文本行之间有额外的间隔。

我在展示文本github 这里上找到了关于这个问题的讨论。问题是ggsave和showtext的dpi默认值不同(分别为300和96 )。因此,在绘图之前添加showtext_opts(dpi = 300)也解决了这个问题。

最后的代码和解决方案如下:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74408392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档