【发布时间】:2021-09-23 18:01:35
【问题描述】:
我目前在 R 中工作,试图创建一个图面板,每个图都包含两个重叠的直方图:蓝色直方图下方的红色直方图。红色直方图在每个图中包含相同的数据集,因此应该在整个板上一致地显示。我发现事实并非如此。尽管每个图中的数据完全相同,但红色直方图有所不同。有没有办法来解决这个问题?我的代码中是否遗漏了导致这种不一致的内容?
这是我用来创建绘图的代码:
test<-rnorm(1000)
test<-as.data.table(test)
test[, type:="Sample"]
setnames(test, old="test", new="value")
test_2<-rnorm(750)
test_2<-as.data.table(test_2)
test_2[, type:="Sub Sample"]
setnames(test_2, old="test_2", new="value")
test_2_final<-rbind(test, test_2, fill=TRUE)
test_3<-rnorm(500)
test_3<-as.data.table(test_3)
test_3[, type:="Sub Sample"]
setnames(test_3, old="test_3", new="value")
test_3_final<-rbind(test, test_3, fill=TRUE)
test_4<-rnorm(250)
test_4<-as.data.table(test_4)
test_4[, type:="Sub Sample"]
setnames(test_4, old="test_4", new="value")
test_4_final<-rbind(test, test_4, fill=TRUE)
test_5<-rnorm(100)
test_5<-as.data.table(test_5)
test_5[, type:="Sub Sample"]
setnames(test_5, old="test_5", new="value")
test_5_final<-rbind(test, test_5, fill=TRUE)
test_6<-rnorm(50)
test_6<-as.data.table(test_6)
test_6[, type:="Sub Sample"]
setnames(test_6, old="test_6", new="value")
test_6_final<-rbind(test, test_6, fill=TRUE)
draws_750_p<-ggplot(data = test_2_final, aes(x=value, fill=type, color=type)) + geom_histogram(position="identity", alpha = 0.2, bins=30) + theme(plot.title = element_text(hjust = 0.5, size=10, face="plain"))
draws_500_p<-ggplot(data = test_3_final, aes(x=value, fill=type, color=type)) + geom_histogram(position="identity", alpha = 0.2, bins=30) + theme(plot.title = element_text(hjust = 0.5, size=10, face="plain"))
draws_250_p<-ggplot(data = test_4_final, aes(x=value, fill=type, color=type)) + geom_histogram(position="identity", alpha = 0.2, bins=30) + theme(plot.title = element_text(hjust = 0.5, size=10, face="plain"))
draws_100_p<-ggplot(data = test_5_final, aes(x=value, fill=type, color=type)) + geom_histogram(position="identity", alpha = 0.2, bins=30) + theme(plot.title = element_text(hjust = 0.5, size=10, face="plain"))
draws_50_p<-ggplot(data = test_6_final, aes(x=value, fill=type, color=type)) + geom_histogram(position="identity", alpha = 0.2, bins=30) + theme(plot.title = element_text(hjust = 0.5, size=10, face="plain"))
full_plot<-plot_grid(draws_750_p, draws_500_p, draws_250_p, draws_100_p, draws_50_p, ncol = 3, nrow = 2)
这是我描述的奇怪结果的图片:注意红色直方图的分布如何不同,尽管每个集合中的数据集完全相同(在此示例中,您可以在 draws_250_p 图中看到最多在右上角)-
【问题讨论】:
-
没有仔细看,但我认为问题在于每个地块使用的垃圾箱不同。这意味着相同的值最终可能会出现在不同的 bin 中。默认值是根据指定的 bin 数量和数据范围猜测合理的 bin 边界,但由于每个图中的子样本不同(并且可能比主样本早或晚开始),因此生成的边界将是不同。
-
@CalumYou 这真的很有帮助。我必须手动指定垃圾箱吗?
-
您可以使用
breaks参数手动指定垃圾箱,或者使用binwidth和center/boundary的组合来确保垃圾箱对齐。例如binwidth = 0.05,boundary = 0将产生 0-0.05, 0.05-0.1 等,只要数据扩展