首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ggplot2的字体或显示文本在R中导入女性和男性符号的字体

使用ggplot2的字体或显示文本在R中导入女性和男性符号的字体
EN

Stack Overflow用户
提问于 2019-04-02 21:32:29
回答 1查看 746关注 0票数 3

我试图在ggplot图形中使用女性♀和男性♂符号。当我加载extrafont包并运行所需的代码时,它不工作(类似于这个post)。

我在Mac的10.11.6版上,使用R作为Mac的3.5.2版本。

代码语言:javascript
复制
install.packages("extrafont")
library(extrafont)
extrafont::loadfonts(device="pdf")
extrafont::font_import(pattern="CALIBRI") #pattern that has the ♀ and ♂ symbols
#when I run this as font_import() alone fonts() is still empty

错误消息:

扫描/库/字体/,/系统/库/字体,~/库/字体/.从.afm文件中提取.ttf文件。Data.frame中的错误(fontfile= ttfiles,FontName = "",stringsAsFactors = FALSE):参数意味着不同的行数: 0,1

和双重核对:

代码语言:javascript
复制
> fonts() #empty
 NULL
> fonttable() #empty
 data frame with 0 columns and 0 rows

,有人知道为什么会发生这种情况吗?我怎样才能让它正常运行?

更新:

或者,我可以使用不同的包(请参阅OP here)来加载杯标。但是,我仍然不能让♀和♂符号出现在我的♀上。Suggestions?

代码语言:javascript
复制
install.packages('showtext', dependencies = TRUE)
library(showtext)
font_add_google("Montserrat", "Montserrat")
font_add_google("Roboto", "Roboto")
font_paths() 
font_files()

# syntax: font_add(family = "<family_name>", regular = "/path/to/font/file")
font_add("Calibri", "calibri.ttf")
font_families()
showtext_auto() 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-26 21:21:16

showtext应该能够完成这项工作。

代码语言:javascript
复制
library(ggplot2)
library(showtext)
showtext_auto()

female = intToUtf8(9792)
male = intToUtf8(9794)

p = ggplot() +
    annotate("text", x = 1, y = 1, label = female, size = 20) +
    annotate("text", x = 2, y = 1, label = male, size = 20) +
    theme_bw(base_family = "sans")

## On screen
x11()
print(p)

## Save to PDF
ggsave("symbol.pdf", p, width = 9, height = 6)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55483861

复制
相关文章

相似问题

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