Создайте динамический заголовок субтитры с помощью ggplot2

#r #ggplot2

#r #ggplot2

Вопрос:

Я использую следующий код для создания графика ggplot с заголовком и подзаголовком:

Это код для генерации фрейма данных

 t <- c(1.4,2.1,3.4)
time <- c(10,11,12)
df_match <- data.frame(t, time)
  

И это код для создания графика.

 g <- ggplot(df_match, aes(time, t))   geom_point()
g   theme(axis.text.x = element_text(angle = 90))   ggtitle(expression(atop("Head", atop(italic("Location"), "")))) 
  

Это работает нормально. Однако, когда я хочу создать динамическую диаграмму, и я делаю:

 title <- "Dynamic"
  

И это:

 g <- ggplot(df_match, aes(time, t))   geom_point()
g   theme(axis.text.x = element_text(angle = 90))   ggtitle(expression(atop(title, atop(italic("Location"), "")))) 
  

Я получаю «заголовок» в качестве заголовка вместо «Динамического». Есть мысли о том, что здесь пошло не так?

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

1. Это работает для меня: title <- "iris"; ggplot(iris, aes(x=Sepal.Width,y=Sepal.Length)) geom_point() labs(title = title)

2. Спасибо, но мне тоже нужен субтитр… Есть мысли?>

3. Если вы установите версию разработчика с github (или немного подождете ее официального выпуска), появится новая официальная (простая) поддержка субтитров: blog.rstudio.org/2016/09/30/ggplot2-2-2-0-coming-soon

4. g theme(axis.text.x = element_text(angle = 90)) ggtitle(title, subtitle = "location") работает для меня. Редактировать: у меня есть версия для разработчиков, которая должна быть выпущена в ближайшее время.

Ответ №1:

Используйте bquote для оценки битов, которые вам нужно оценить. Поместите объекты, которые вы хотите оценить, в .()


g ggtitle(bquote(atop(.(title), atop(italic("Location"), ""))))

Ответ №2:

Используя g и title из вопроса, попробуйте substitute :

 g   theme(axis.text.x = element_text(angle = 90))   
    ggtitle(substitute(atop(title, atop(italic("Location"), "")), list(title = title)))
  

предоставление:

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