Сначала вы получите нужный шрифт и установите его в своей системе. Ничего общего с R. Проверьте, работает ли шрифт, проверив в любой обычной программе, такой как MS Word или что-то в этом роде.
Затем откройте R, загрузите пакет extrafont
и импортируйте шрифт, который вы установили. Я думаю, что пока это работает только со .ttf
шрифтами.
library(extrafont)
font_import(pattern="Roboto")
Если это работает, то этот шаг добавит эти шрифты в extrafontdb. Вы увидите что-то вроде этого ...
> font_import(pattern="Roboto",prompt=FALSE)
Scanning ttf files in C:\windows\Fonts ...
Extracting .afm files from .ttf files...
C:\Windows\Fonts\Roboto-Black.ttf => C:/R/R-3.5.1/library/extrafontdb/metrics/Roboto-Black
C:\Windows\Fonts\Roboto-BlackItalic.ttf => C:/R/R-3.5.1/library/extrafontdb/metrics/Roboto-BlackItalic
...
C:\Windows\Fonts\RobotoCondensed-Regular.ttf => C:/R/R-3.5.1/library/extrafontdb/metrics/RobotoCondensed-Regular
Found FontName for 30 fonts.
Scanning afm files in C:/R/R-3.5.1/library/extrafontdb/metrics
Writing font table in C:/R/R-3.5.1/library/extrafontdb/fontmap/fonttable.csv
Writing Fontmap to C:/R/R-3.5.1/library/extrafontdb/fontmap/Fontmap...
Это разовая вещь. После импорта он доступен в R с тех пор. Все, что вам нужно сделать, это запустить ниже.
library(extrafont)
# for windows
windowsFonts(sans="Roboto")
loadfonts(device="win")
loadfonts(device="postscript")
Теперь значения по умолчанию должны были измениться.
plot(x=1:5,y=1:5)
ggplot
имеет base_family
, который необходимо изменить, и family
аргумент для текстовых geoms.
library(ggplot2)
p <- ggplot(data.frame(x=1:5,y=1:5),aes(x,y))+
geom_point()+
geom_text(aes(label=y),nudge_x=0.5,family="Roboto")+
theme_bw(base_family="Roboto")
p
Экспорт растровых изображений тоже должен работать.
ggsave("plot.png",p)
PDF - это боль. У них есть дополнительный family
аргумент. Есть также кое-что о внедрении и прочем. См. Ссылку ниже.
ggsave("plot.pdf",p,family="Roboto")
Вся необходимая информация: здесь .