我试图创建一个函数来获取几个图的不同版本。通常,我必须为进行的几个分析做出报告,我的同事需要不同版本的图(深色背景,浅色背景等),以便在不同的演示文稿,论文等中使用它们。
我的尝试是:
PlotVariants <- function(plotList){
#' Función para generar diferentes formatos de gráficas para su
#' visualización. Requiere que las gráficas se hayan hecho con ggplot2
#' Function to generate several graphs formats to better visualization.
#' It requires that graphs had been done in ggplot2.
#' plotList: lista con todas las gráficas que queremos modificar
#' plotList: list with all graphs to modify
library(ggplot2)
library(ggthemes)
Formatting.plots <- function(x){
name.plot <- deparse(substitute(x))
plt <- x + theme_bw(base_size=11) +
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
legend.background=element_blank())
ggsave(filename=paste('Figures/',name.plot,'_bw.pdf', sep=''),
plot=plt)
plt <- x + theme_solarized(base_size=11) +
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
legend.background=element_blank())
ggsave(filename=paste('Figures/',name.plot,'_solarized.pdf', sep=''),
plot=plt)
plt <- x + theme_solarized(light=FALSE,base_size=11) +
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
legend.background=element_blank())
ggsave(filename=paste('Figures/',name.plot,'_solarized_dark.pdf', sep=''),
plot=plt)
}
lapply(plotList, Formatting.plots)
return('DONE')
}
功能有效,因为不同的数字保存在&#39;数字/&#39;项目的文件夹,但plotList中的图的名称被转换为X [1L]到X [[nL]](其中n是列表中的图的数量),得到数字/ X [[1L] ] _bw.pdf例如(见下面的代码):
# Libraries
library(ggplot2)
library(ggthemes)
# Some foo.data and two foo.plots to use as example
foo.x <- rnorm(10)
foo.y <- rnorm(10)
foo.df <- data.frame(x=foo.x,y=y)
foo_plot_1 <- ggplot(foo.df,aes(x=x,y=y))+
geom_point()
foo_plot_2 <- ggplot(foo.df,aes(x=x,y=y))+
geom_line()
# Creating the foo.list to use with the function
foo.list.plots <- list(foo_plot_1,foo_plot_2)
# Calling the function
PlotVariants(foo.list.plots)
# Expected content of the Figures/ folder:
dir('Figures/')
foo_plot_1_bw.pdf
foo_plot_1_solarized.pdf
foo_plot_1_solarized_dark.pdf
foo_plot_2_bw.pdf
foo_plot_2_solarized.pdf
foo_plot_2_solarized_dark.pdf
# Actual content of the Figures/ folder:
dir('Figures/')
X[[1L]]_bw.pdf
X[[1L]]_solarized.pdf
X[[1L]]_solarized_dark.pdf
X[[2L]]_bw.pdf
X[[2L]]_solarized.pdf
X[[2L]]_solarized_dark.pdf
我一直在阅读并寻找问题的答案,但我找不到答案。如果可能的话,我希望有人可以指导我获取正确的名字。 提前谢谢。