gpt4 book ai didi

r - 如何在 R 中不重叠地绘制多个直方图

转载 作者:行者123 更新时间:2023-12-04 12:31:45 24 4
gpt4 key购买 nike

你能告诉我有没有一种方法可以在不安装额外库的情况下在 R 中动态绘制多个直方图而不会过度重叠。从某种意义上讲,动态地绘制随列数变化的直方图。下面的代码只有 4 列,但可以在 2 到 20 列之间更改。

示例图

enter image description here

我的代码

set.seed(3)
Ex <- xts(1:100, Sys.Date()+1:100)
df = data.frame(Ex,matrix(rnorm(100*4,mean=123,sd=3), nrow=100))
df<-df[,-1]

for(i in names(df)){
dfh<-hist(df[[i]], plot=FALSE)
}
plot(dfh,main="Histogram",xlab="x",col="green",label=TRUE)

这只绘制了最后一个直方图

最佳答案

如果你想在同一个屏幕上有多个绘图,你可以使用命令

par(mfrow = c(2,1))

其中 c(2,1) 表示您希望有 2 行和 1 列的图表,并排放置图表。如果你输入 c(1,3),你会告诉 R 将你的图表放在 1 行和 3 列中,依此类推。

然后只需一个接一个地绘制您的图表,它们就会填满相应的空间。

编辑:如果你想自动计算 par 函数的行和列,你可以创建一个这样的函数(或者更精确的东西并将它传递给 par)

dimension = function(df){
kk = dim(df)[2];

x = round(sqrt(kk),0);
y = ceiling(kk/x);

return(c(x,y))
}

成为你的代码

set.seed(3)
Ex <- xts(1:100, Sys.Date()+1:100)
df = data.frame(Ex,matrix(rnorm(100*4,mean=123,sd=3), nrow=100))
df<-df[,-1]

par(mfrow = dimension(df))

for(i in names(df)){
hist(df[[i]] ,main="Histogram",xlab="x",col="green",label=TRUE,plot = TRUE)
}

关于r - 如何在 R 中不重叠地绘制多个直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com