Как вы меняете шрифты в ggplot2?

Недавно я узнал, что мне нужно, чтобы шрифт моего тезиса соответствовал шрифту моих встроенных фигур. Поскольку я решил использовать Times New Roman для основного текста, мне нужно пересмотреть свои цифры и кодировать их тем же шрифтом. К сожалению, то, что я думал, было бы простой функцией, превратилось в ОГРОМНУЮ головную боль. Следуя советам других, я установил пакет "extrafont" и загрузил все шрифты, доступные с моего устройства (я работаю на Macbook fyi). После использования всего необходимого кода, который я мог вычеркнуть из других запросов на переполнение стека, меня встретили с предварительным просмотром моей фигуры, показывающей правильный шрифт (опять же, Times New Roman). Тем не менее, головная боль началась после попытки экспортировать его с помощью функции ggsave. К сожалению, я получил следующую ошибку:

Было 50 или более предупреждений (используйте warnings(), чтобы увидеть первые 50)

После запуска предложенной функции, чтобы узнать больше об этих предупреждениях, меня приветствовал длинный список повторяющихся ошибок:

> warnings()
Warning messages:
1: In grid.Call(C_textBounds, as.graphicsAnnot(x$label),  ... :
  font family 'Times New Roman' not found in PostScript font database
2: In grid.Call(C_textBounds, as.graphicsAnnot(x$label),  ... :
 font family 'Times New Roman' not found in PostScript font database
3: In grid.Call(C_textBounds, as.graphicsAnnot(x$label),  ... :
  font family 'Times New Roman' not found in PostScript font database
4: In grid.Call(C_textBounds, as.graphicsAnnot(x$label),  ... :
  font family 'Times New Roman' not found in PostScript font database
5: In grid.Call(C_textBounds, as.graphicsAnnot(x$label),  ... :
  font family 'Times New Roman' not found in PostScript font database
6: In grid.Call(C_textBounds, as.graphicsAnnot(x$label),  ... :

И так далее. Что здесь происходит и как мне это исправить в моем коде? Код, который я использовал, приведен ниже. И да, после запуска функции loadfonts (device) мне было предложено принять функцию (y / n), и я ждал, пока она полностью загрузится, прежде чем двигаться дальше с моим кодом. И да, я сразу же запустил команду fonts(), чтобы дважды проверить, что Times New Roman был в списке. Вот мой код:

install.packages("extrafont")
library(extrafont)
font_import()
loadfonts(device)
fonts()

ggplot(plot1, aes(x=ecotype, y=mean, fill=treatment))+
  geom_bar(stat="identity", position="dodge")+
  geom_errorbar(aes(ymin=mean-se, ymax=mean+se), position=position_dodge(.9), 
width=.3)+
  scale_fill_manual(values=c("#CA3542","#37AFA9"), 
labels=c("Control","Exclusion"), name="Treatment")+
  labs(x="Ecotype", y="Expected Mean Dry Aboveground Biomass (g)")+
  geom_hline(aes(yintercept=0), size=.3)+
  facet_grid(site~., scales="free")+
  theme_bw()+
  theme(axis.title.x=element_text(size=16))+
  theme(axis.title.y=element_text(size=16))+
  theme(axis.text.x=element_text(size=16))+
  theme(axis.text.y=element_text(size=16))+
  theme(strip.text.y=element_text(size=16))+
  theme(legend.title=element_text(size=12))+
  theme(legend.text=element_text(size=12))+
  theme(text=element_text(family="Times New Roman"))+
  theme(legend.justification = c(0.9,1.1), legend.position=c(0.95,1), 
panel.grid.major = element_blank(), panel.grid.minor = element_blank())
ggsave("plot1.eps", height = 8, width = 5)

Отказ от ответственности: я все еще относительный новичок в R, поэтому я был бы признателен за любые советы, чтобы быть ясным и в целом в контексте приведенного выше кода. Заранее спасибо!

0 ответов

Другие вопросы по тегам