我如何在 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}
- 对于上面的每一对 (α, λ) ∈ A × L,使用内置的 R 函数 rgamma() 从 Gamma(α, λ) 分布中生成大小为 10, 000 的样本。 (不要在输出中包含您的示例!)
这将为您提供 7 × 7 = 49 个随机样本,每个样本大小为 10, 000。这些是您的数据集,您将根据这些数据集完成其余的作业。
- 使用函数 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()
所以在这里看这个问题
“让 A = {0.1, 0.5, 1, 2, 5, 10, 100} L = {0.1, 0.5, 1, 2, 5, 10, 100}
- 对于上面的每一对 (α, λ) ∈ A × L,使用内置的 R 函数 rgamma() 从 Gamma(α, λ) 分布中生成大小为 10, 000 的样本。 (不要在输出中包含您的示例!) 这将为您提供 7 × 7 = 49 个随机样本,每个样本大小为 10, 000。这些是您的数据集,您将根据这些数据集完成其余的作业。
- 使用函数 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()