使用 ggplot2 的 extrafont 或 showtext 在 R 中导入女性和男性符号的字体
Import font for female and male symbols in R using extrafont or showtext for ggplot2
我正在尝试在 ggplot
图中使用女性 ♀ 和男性 ♂ 符号。当我加载 extrafont
包和 运行 所需的代码时,它不起作用(类似于 post)。
我正在使用 Mac OS X,版本 10.11.6,使用 R 作为 Mac OS X,版本 3.5.2。
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
错误信息:
Scanning ttf files in /Library/Fonts/, /System/Library/Fonts, ~/Library/Fonts/ ...
Extracting .afm files from .ttf files...
Error in data.frame(fontfile = ttfiles, FontName = "", stringsAsFactors = FALSE) :
arguments imply differing number of rows: 0, 1
并仔细检查:
> fonts() #empty
NULL
> fonttable() #empty
data frame with 0 columns and 0 rows
有谁知道为什么会发生这种情况以及我如何才能将其正确地 运行?
更新:
或者,我可以使用不同的包加载 Calibri(参见 OP )。但是,我仍然无法在我的 ggplot
上显示 ♀ 和 ♂ 符号。 有什么建议吗?
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()
showtext
应该可以胜任。
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)
我正在尝试在 ggplot
图中使用女性 ♀ 和男性 ♂ 符号。当我加载 extrafont
包和 运行 所需的代码时,它不起作用(类似于 post)。
我正在使用 Mac OS X,版本 10.11.6,使用 R 作为 Mac OS X,版本 3.5.2。
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
错误信息:
Scanning ttf files in /Library/Fonts/, /System/Library/Fonts, ~/Library/Fonts/ ... Extracting .afm files from .ttf files... Error in data.frame(fontfile = ttfiles, FontName = "", stringsAsFactors = FALSE) : arguments imply differing number of rows: 0, 1
并仔细检查:
> fonts() #empty
NULL
> fonttable() #empty
data frame with 0 columns and 0 rows
有谁知道为什么会发生这种情况以及我如何才能将其正确地 运行?
更新:
或者,我可以使用不同的包加载 Calibri(参见 OP ggplot
上显示 ♀ 和 ♂ 符号。 有什么建议吗?
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()
showtext
应该可以胜任。
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)