使用';在数据框中创建多个绘图(每列一个绘图);对于';环进R
我想在一个数据帧中使用R中的“for”循环绘制多个直方图图(每列一个) 我已经做了我的在线搜索,我设法得到了这个代码。对于每一列,我想根据“组”制作多个直方图。当我在没有“for”循环和单个列的情况下进行操作时,这对我来说是有效的。但是,当我尝试对“一个pdf”中的所有列使用“for”循环all-at-one时,生成的pdf文件没有任何错误。但它不会产生任何情节。有谁能帮助我了解代码中可能缺少的内容吗?我只是想让它自动化,因为我有比这4个变量多得多的变量来绘制这样的图使用';在数据框中创建多个绘图(每列一个绘图);对于';环进R,r,dataframe,for-loop,plot,multiple-columns,R,Dataframe,For Loop,Plot,Multiple Columns,我想在一个数据帧中使用R中的“for”循环绘制多个直方图图(每列一个) 我已经做了我的在线搜索,我设法得到了这个代码。对于每一列,我想根据“组”制作多个直方图。当我在没有“for”循环和单个列的情况下进行操作时,这对我来说是有效的。但是,当我尝试对“一个pdf”中的所有列使用“for”循环all-at-one时,生成的pdf文件没有任何错误。但它不会产生任何情节。有谁能帮助我了解代码中可能缺少的内容吗?我只是想让它自动化,因为我有比这4个变量多得多的变量来绘制这样的图 library(purr
library(purrr)
library(ggplot2)
library(doBy)
setwd("C:\\Path\\")
df <- read.table("Histograms_Example.txt", header=T)
pdf(file=paste0("one.pdf"))
par(mfrow = c(1, 1))
loop.vector <- names(df)[1:4]
for (i in loop.vector) {
x <- df[,i]
mu <- summaryBy(x ~ Groups, data = df,
FUN = list(median), na.rm = TRUE)
ggplot(df, aes(x=x, color=Groups, fill=Groups)) +
geom_histogram(aes(y=..density..), position="identity", alpha=0.5)+
geom_density(alpha=0.6)+
geom_vline(data=mu, aes(xintercept=x.median, color=Groups),
linetype="dashed")+
scale_color_grey()+
scale_fill_grey() +
labs(title="Weight histogram plot",x=paste("",x), y = "Density")+
theme_classic()
}
dev.off()
库(purrr)
图书馆(GG2)
图书馆(多比)
setwd(“C:\\Path\\”)
df您需要在for循环中显式打印ggplot对象:
将绘图指定给对象:p=ggplot(…)
打印对象:Print(p)
如果您可以使用dput(head(df))
共享一些数据,这将非常有用。当然,我已经这样做了。这只是一个示例数据,如图所示。在这一点上,它们不是正态分布的,只是作为一个假人来帮助我完成pdf输出的工作。可能的重复解决了这个问题,也帮助我理解。非常感谢你。
library(purrr)
library(ggplot2)
library(doBy)
setwd("C:\\Path\\")
df <- read.table("Histograms_Example.txt", header=T)
pdf(file=paste0("one.pdf"))
par(mfrow = c(1, 1))
loop.vector <- names(df)[1:4]
for (i in loop.vector) {
x <- df[,i]
mu <- summaryBy(x ~ Groups, data = df,
FUN = list(median), na.rm = TRUE)
ggplot(df, aes(x=x, color=Groups, fill=Groups)) +
geom_histogram(aes(y=..density..), position="identity", alpha=0.5)+
geom_density(alpha=0.6)+
geom_vline(data=mu, aes(xintercept=x.median, color=Groups),
linetype="dashed")+
scale_color_grey()+
scale_fill_grey() +
labs(title="Weight histogram plot",x=paste("",x), y = "Density")+
theme_classic()
}
dev.off()