【发布时间】:2020-08-18 22:34:55
【问题描述】:
我试图在直方图中绘制我的测试和训练数据集的分布,并发现了一些奇怪的东西:
背景: 我有一个包含 50 行的测试集和一个包含 100 行的训练集,每行都具有相同的列结构。
我通常会这样绘制数据:
plot2 <- ggplot(data=Donald_1) +
geom_histogram(aes_string(x = "Alter", y = "..count..", fill = "Group"),
bins=20, alpha=0.7)
这会产生如下所示的正确直方图。然后我想知道为什么测试的计数高于训练,因为测试集只有 50 行而不是 100 行。似乎测试条显示了左侧图的测试条和训练条的总和。
然后我尝试了:
plot1 <- ggplot() +
geom_histogram(data=Donald_1 %>% filter(Group == "Training"),
aes_string(x="Alter", y="..count..", fill = "Group"),
bins=20, alpha=0.7) +
geom_histogram(data=Donald_1 %>% filter(Group == "Test"),
aes_string(x="Alter", y="..count..", fill="Group"),
bins=20, alpha=0.7)
这导致了下面显示的左图,并且该结果对我来说更有意义。
我现在想知道,为什么第一次尝试不会导致与第二次尝试相同的情节。我在这里遗漏了什么明显的东西吗?
【问题讨论】:
-
在您的第一种方法中,该过程将自动以“堆叠”方式绘制直方图。请使用
position = "identity"或position = "dodge"重试。 -
感谢您的快速响应! position = "identity" 做到了。 !! :)