Импорт шрифта для женских и мужских символов в R с использованием extrafont или showtext для ggplot2 - PullRequest
2 голосов
/ 03 апреля 2019

Я пытаюсь использовать женские ♀ и мужские ♂ символы на рисунке 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

Сообщение об ошибке:

Сканирование файлов 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 Ответ

0 голосов
/ 27 апреля 2019

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)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...