带有标题和均值的多个直方图?
Multiple histograms with title and mean as a line?
我在探索性分析中遇到直方图函数问题。我想 运行 通过直方图函数在我的数据集中添加几个变量,并为每个变量添加标题和算术平均值处的一行。这是我的进度(但主标题仍然缺失):
histo.abline <-function(x){
hist(x)
abline(v = mean(x, na.rm = TRUE), col = "blue", lwd = 4)}
sapply(dataset[c(7:10)], histo.abline)
我试图在直方图函数中添加一个主要参数,但它没有为我的数据集向量选择正确的变量名称。当我把 main=x
放在那里时,它会为每个变量显示 returns NULL。 Colnames、names 和其他函数也不起作用。你能帮帮我吗?
你可以尝试用ggplot来做:
library(ggplot)
histo.abline <-function(dataset,colnum){
p<-ggplot(dataset,aes(dataset[,colnum]))+geom_histogram(bins=5,fill=I("blue"),col=I("red"), alpha=I(.2))+
geom_vline(xintercept = mean(dataset[,colnum], na.rm = TRUE))+xlab(as.character(names(dataset)[colnum]))
return(p)
}
由于您尚未提供数据,让我们使用 mtcars 并创建直方图列表
dataset=mtcars
listOfHistograms<-lapply(3:7,function(x) histo.abline(dataset,x))
您的列表有 5 个直方图,您可以绘制第一个直方图:
print(listOfHistograms[[1]])
此处有更多 ggplot 直方图选项:https://www.r-bloggers.com/how-to-make-a-histogram-with-ggplot2/
希望这对您有所帮助
编辑:一张图中的多个图
一种方法是通过 cowplot 库:
library(cowplot)
plot_grid(plotlist=listOfHistograms[1:4])
我在探索性分析中遇到直方图函数问题。我想 运行 通过直方图函数在我的数据集中添加几个变量,并为每个变量添加标题和算术平均值处的一行。这是我的进度(但主标题仍然缺失):
histo.abline <-function(x){
hist(x)
abline(v = mean(x, na.rm = TRUE), col = "blue", lwd = 4)}
sapply(dataset[c(7:10)], histo.abline)
我试图在直方图函数中添加一个主要参数,但它没有为我的数据集向量选择正确的变量名称。当我把 main=x
放在那里时,它会为每个变量显示 returns NULL。 Colnames、names 和其他函数也不起作用。你能帮帮我吗?
你可以尝试用ggplot来做:
library(ggplot)
histo.abline <-function(dataset,colnum){
p<-ggplot(dataset,aes(dataset[,colnum]))+geom_histogram(bins=5,fill=I("blue"),col=I("red"), alpha=I(.2))+
geom_vline(xintercept = mean(dataset[,colnum], na.rm = TRUE))+xlab(as.character(names(dataset)[colnum]))
return(p)
}
由于您尚未提供数据,让我们使用 mtcars 并创建直方图列表
dataset=mtcars
listOfHistograms<-lapply(3:7,function(x) histo.abline(dataset,x))
您的列表有 5 个直方图,您可以绘制第一个直方图:
print(listOfHistograms[[1]])
此处有更多 ggplot 直方图选项:https://www.r-bloggers.com/how-to-make-a-histogram-with-ggplot2/
希望这对您有所帮助
编辑:一张图中的多个图
一种方法是通过 cowplot 库:
library(cowplot)
plot_grid(plotlist=listOfHistograms[1:4])