我如何在 R 中绘制此直方图

how do I plot this histogram in R

所以在这里看这个问题

“让 A = {0.1, 0.5, 1, 2, 5, 10, 100} L = {0.1, 0.5, 1, 2, 5, 10, 100}

  1. 对于上面的每一对 (α, λ) ∈ A × L,使用内置的 R 函数 rgamma() 从 Gamma(α, λ) 分布中生成大小为 10, 000 的样本。 (不要在输出中包含您的示例!) 这将为您提供 7 × 7 = 49 个随机样本,每个样本大小为 10, 000。这些是您的数据集,您将根据这些数据集完成其余的作业。
  2. 使用函数 hist() 绘制样本数据集的直方图。我想要 49 直方图。如果您可以将它们排列成漂亮的 7×7 网格,那就更好了。清楚地标记你的地块。请记住使用 breaks 选项并选择适当数量的 bin,以便您的绘图具有很好定义的形状。"

我正在尝试 Q2,想知道我在这里做错了什么,甚至我的 Q 1 是否正确

#Question 1

set.seed(10000)

v <- c(0.1,0.5,1,2,5,10,100)
u <- c()
for(i in v)
{
  for(j in v)
  {
    u <- c(u,paste0(i,"-",j))
  }
}


#Question 2

lyst <- list()
q <- 1
for (i in v)
{
  m <- matrix(nrow=10000)
  for (j in v)
  {
    m <- cbind(m,rgamma(10000,i,j))
  }
  m <- m[,-1]
  colnames(m) <- paste0(rep(as.character(i),7),"-",as.character(j))
  lyst[[q]] <- m
  q <- q + 1
}
pdf("Hist8.pdf",width = 20,height = 10)
for(x in 1:7)
{
  for(y in 1:7)
  {
    hist(lyst[[x]][,y],
    xlab = "Value",
    main = paste("Alpha-Lambda:",
    colnames(lis[[x]])[y]))
  }
}
dev.off()

如果有任何建议或任何资源可以帮助我,我将不胜感激

这是对您的方法的快速修改。我没有尝试将所有内容存储在矩阵中,而是创建了一个包含 49 个所需分布的列表,然后将它们 1 乘 1 绘制出来。

#Question 2

lyst <- list()
#create a list of the 49 distributions
for (i in v)
{
  for (j in v)
  {
    elementname<-paste0(as.character(i),"-",as.character(j))
    print(elementname)
    lyst[[elementname]] <- rgamma(10000,i,j)
  }
}


#plot the 49 lists
#pdf("Hist8.pdf",width = 20,height = 10)
#define the number of rows and columns (7x7 is probably to many)
par(mfcol=c(7,7))
for(x in names(lyst))
{
    hist(lyst[[x]],
         xlab = "Value",
         main = paste("Alpha-Lambda:", x) )

}
#dev.off()