Уникальные метки оси с dplyr и ggplot - R - PullRequest
0 голосов
/ 30 мая 2018

Я использую purrr для создания нескольких ggplot2 графиков.Как я могу дать каждой оси X уникальное имя, используя числовую строку?

Моя лучшая попытка (ниже) - получить только первое значение строки, поэтому на оси X всех 3 графиков написано:1% explained variance, когда мне нужны три разных имени 1% explained variance, 2% explained variance и 3% explained variance.Спасибо

library(tidyverse)

new<-c(1,2,3)

iris%>%
  split(.$Species) %>%
  purrr::map2(.y = names(.),
              ~ ggplot(data=., aes(x=Sepal.Length, y=Sepal.Width))+
                geom_point()+
                labs(x=paste(round(new,2),'% explained variance', sep=''))
  )

1 Ответ

0 голосов
/ 30 мая 2018

В map2 мы можем указать .y как seq_along(.) и затем использовать его для индексации «нового», потому что «новый» - это вектор длины 3.

l1 <- iris %>% 
        split(.$Species) %>% 
        map2( seq_along(.), ~ 
             ggplot(data=., aes(x=Sepal.Length, y=Sepal.Width))+
                geom_point()+
                labs(x=paste(round(new[.y],2),'% explained variance', sep='')))

ПРИМЕЧАНИЕ: Если мы не используем names, просто передайте 'new' как .y (здесь имена элементов list не используются)


Графики могут быть сохранены какодин PDF

library(gridExtra)
l2 <- map(l1, ggplotGrob)
ggsave(marrangeGrob(grobs = l2, nrow = 1, ncol =1), file = "plots.pdf")

Или сохранить его в виде одного PNG с несколькими участками на одной странице

ggsave(marrangeGrob(grobs = l2, nrow = 3, ncol =1), file = "plots.png")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...