Поврежден экспорт после объекта ggplot2 с сеткой.вывод рисования

#r #ggplot2

#r #ggplot2

Вопрос:

Я пытаюсь создать стиль графика ggplot2. theme_custom() Функция обрабатывает скорректированные темы. Сложная часть — это часть, которая перезаписывает поля title , subtitle и caption . Моя цель с finalise_plot() помощью функции — выровнять текст по крайней левой стороне графика.

График выглядит почти так, как я хочу, только теперь я натыкаюсь на проблемы с экспортом. Когда я пытаюсь сохранить изображение (через устройство печати) в формате PDF, он удаляет весь текст. Когда я экспортирую его в svg, он повреждается.

Есть ли способ экспортировать точный вывод в svg, как в примере ниже?

 library(tidyverse)
library(grid)
library(gridExtra)

theme_custom <- function(){
  theme_minimal()  
    theme(plot.title = element_text(face = "bold",
                                    family = "Arial",
                                    size = 24),
          plot.subtitle = element_text(face = "bold",
                                       family = "Arial",
                                       size = 20),
          plot.caption = element_text(hjust = 0,
                                      color = "#6c737b",
                                      size = 18,
                                      family = "Arial"),
          axis.text = element_text(size = 18,
                                   color = "#1d2939",
                                   family = "Arial"),
          axis.title.y = element_text(color = "#6b38e8",
                                      family = "Arial",
                                      size = 18,
                                      hjust = 0),
          axis.text.y = element_text(color = "#6b38e8"),
          plot.background = element_rect(fill = "#f2f2f2",
                                         color = 0),
          panel.grid.minor = element_blank(),
          panel.grid = element_line(color = "#d8cedb",
                                    size = 0.75),
          panel.border = element_blank(),
          plot.margin = unit(c(10,0,0,0),"pt"))
}

finalise_plot <- function() {

  table_grob <- ggplotGrob(p)

  table_grob$layout$l[table_grob$layout$name %in% c("title", "subtitle", "caption")] <- 1

  grid::grid.draw(table_grob)

}

p <- iris %>%
  ggplot(aes(Sepal.Length, Sepal.Width,
             color = Species))  
  geom_point()  
  theme_custom()  
  labs(title = "Main title",
       subtitle = "Subtitle",
       caption = "UCI Machine Learning Repository",
       x = NULL)

finalise_plot()
 

Создано 2019-04-16 пакетом reprex (версия 0.2.1)

экспорт в формате PDF:
введите описание изображения здесь

экспорт svg:

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

Комментарии:

1. Не удается воспроизвести проблему. Я смог экспортировать выходные данные finalise_plot в SVG-файл просто отлично. Можете ли вы подробнее рассказать о своем процессе экспорта?

2. Я только что использовал опцию экспорта графиков Save as image в среде IDE RStudio…

3. То же самое здесь. Работал нормально.

4. Каков наилучший способ экспорта без использования ярлыков IDE?

5. Не знаю, как насчет best, но я обычно по умолчанию ggsave .