J.C*_*Con 3 r ggplot2 dplyr purrr
我purrr用来做多个ggplot2情节.如何使用数字字符串为每个x轴指定唯一名称?
我最好的尝试(下图)是唯一能够得到的字符串的第一个值,因此全部3个图的x轴表示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=''))
)
Run Code Online (Sandbox Code Playgroud)
在map2我们可以指定.yas seq_along(.)然后使用它来索引'new'因为'new'是长度为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='')))
Run Code Online (Sandbox Code Playgroud)
注意:如果我们不使用names,那么只需传递'new'作为.y(这里list不使用元素的名称)
这些图可以保存为单个pdf
library(gridExtra)
l2 <- map(l1, ggplotGrob)
ggsave(marrangeGrob(grobs = l2, nrow = 1, ncol =1), file = "plots.pdf")
Run Code Online (Sandbox Code Playgroud)
或者将其保存为在同一页面上具有多个绘图的单个png
ggsave(marrangeGrob(grobs = l2, nrow = 3, ncol =1), file = "plots.png")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |