форматирование ggtext путается с ggsave

#r #ggplot2 #ggtext

Вопрос:

Я использую ggtext::element_textbook_simple , чтобы включить немного текста-наполнителя в сюжет, поскольку он обладает большой функциональностью в отношении переноса слов для длинных строк.

Когда я запускаю код непосредственно в markdown, я получаю хороший сюжет с равномерным интервалом между всеми словами:

 ```{r fig.width = 6, fig.height = 4}
library(dplyr)
library(ggplot2)
library(ggtext)

p1 <- mtcars %>% 
  ggplot(aes(x = wt, y = hp))  
  geom_point()  
  labs(title = "This is a Generic Title",
       subtitle = "The theme song and opening sequence set the premise of the show. Will Smith is a street-smart teenager, West Philadelphia born and raised. While playing street basketball, Will misses a shot and the ball hits a group of gang members, causing a confrontation that frightens his mother, who sends him to live with his wealthy aunt and uncle in the opulent neighborhood of Bel Air, Los Angeles. Will's working class background ends up clashing in various humorous ways with the upper class world of the Banks family – Will's uncle Phil and aunt Vivian and their children, Will's cousins: spoiled Hilary, pompous Carlton, and impressionable Ashley.")   
  theme(plot.title.position = "plot",
        plot.subtitle = element_textbox_simple(size = 10, lineheight = 1, padding = margin(5, 1, 5, 1)))

p1
```
 

введите описание изображения здесь

Однако, когда я использую ggsave для экспорта графика с теми же размерами, внезапно я получаю множество ошибок в интервалах между словами:

 ggsave("plot1.png", p1, width = 6, height = 4)
 

введите описание изображения здесь

Кто-нибудь знает, почему это так/как я могу предотвратить это?

Ответ №1:

Вероятно, это графическое устройство. Я не могу воспроизвести проблему со своей стороны. Попробуйте устройство agg.

 library(ragg)

agg_png("plot1.png", width = 6, height = 4, units = "in", res = 300)
print(p1)
dev.off()