Импорт шрифта для женских и мужских символов в R с использованием extrafont или showtext для ggplot2
Я пытаюсь использовать женские и мужские символы в ggplot
фигура. Когда я загружаю extrafont
Упакуйте и запустите необходимый код, он не работает (аналогично этому посту).
Я нахожусь на 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
Сообщение об ошибке:
Сканирование файлов ttf в /Library/Fonts/, /System/Library/Fonts, ~/Library/Fonts/ ... Извлечение файлов.afm из файлов.ttf... Ошибка в data.frame(fontfile = ttfiles, FontName = "", stringsAsFactors = FALSE): аргументы подразумевают различное количество строк: 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()
1 ответ
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)