如何一次创建多个具有不同名称的图(循环中的 ggplot)
How to create several plots with different names at once (ggplot in a loop)
我有几个变量需要可视化,每个变量都在不同的图中。我有 20 多个变量,我想将每个图都存储为一个元素,这样我就可以只用对我有用的那些来创建最终的图形。这就是为什么我认为在循环中创建绘图是最好的选择。
我需要几种图,但对于这个例子,我将使用箱线图。我想坚持使用 ggplot,因为它可以让我以后轻松调整图表。
假设这是我的数据:
a<-(rnorm(100,35,1))
b<-(rnorm(100,5,1))
c<-(rnorm(100,40,1))
mydata<-data.frame(a,b,c)
我想要每个名为图 1、图 2 和图 3 的变量的直方图。
我正在尝试这个,但是我对循环的经验很少,我不知道我哪里错了。
variable_to_be_plotted<-c("a","b","c")
for (i in 1:3) {
paste("Figure",i)<-print(ggplot(data = mydata, aes( variable_to_be_plotted[i] )) +
geom_boxplot())
}
您可以使用 lapply()
制作地块,命名地块列表,然后使用 list2env()
plots = lapply(mydata, function(x) ggplot(mydata, aes(x)) + geom_boxplot())
names(plots) <- paste("Figure", 1:3)
list2env(plots, .GlobalEnv)
您可以将绘图保存在列表中。这是执行此操作的 for
循环。
library(ggplot2)
variable_to_be_plotted<-c("a","b","c")
list_plots <- vector('list', length(variable_to_be_plotted))
for (i in seq_along(list_plots)) {
list_plots[[i]] <- ggplot(data = mydata,
aes(.data[[variable_to_be_plotted[i]]])) + geom_boxplot()
}
可以通过 list_plots[[1]]
、list_plots[[2]]
等访问各个地块
我有几个变量需要可视化,每个变量都在不同的图中。我有 20 多个变量,我想将每个图都存储为一个元素,这样我就可以只用对我有用的那些来创建最终的图形。这就是为什么我认为在循环中创建绘图是最好的选择。
我需要几种图,但对于这个例子,我将使用箱线图。我想坚持使用 ggplot,因为它可以让我以后轻松调整图表。
假设这是我的数据:
a<-(rnorm(100,35,1))
b<-(rnorm(100,5,1))
c<-(rnorm(100,40,1))
mydata<-data.frame(a,b,c)
我想要每个名为图 1、图 2 和图 3 的变量的直方图。
我正在尝试这个,但是我对循环的经验很少,我不知道我哪里错了。
variable_to_be_plotted<-c("a","b","c")
for (i in 1:3) {
paste("Figure",i)<-print(ggplot(data = mydata, aes( variable_to_be_plotted[i] )) +
geom_boxplot())
}
您可以使用 lapply()
制作地块,命名地块列表,然后使用 list2env()
plots = lapply(mydata, function(x) ggplot(mydata, aes(x)) + geom_boxplot())
names(plots) <- paste("Figure", 1:3)
list2env(plots, .GlobalEnv)
您可以将绘图保存在列表中。这是执行此操作的 for
循环。
library(ggplot2)
variable_to_be_plotted<-c("a","b","c")
list_plots <- vector('list', length(variable_to_be_plotted))
for (i in seq_along(list_plots)) {
list_plots[[i]] <- ggplot(data = mydata,
aes(.data[[variable_to_be_plotted[i]]])) + geom_boxplot()
}
可以通过 list_plots[[1]]
、list_plots[[2]]
等访问各个地块