我试图在直方图中绘制测试和训练数据集的分布,发现有些奇怪:
背景:我有一个包含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)
其结果如下所示,对我来说更有意义。
我现在想知道,为什么第一次尝试与第二次尝试导致的情节不同。我在这里错过明显的东西吗?
[我试图在直方图中绘制测试和训练数据集的分布,发现有些奇怪:背景:我有一个包含50行的测试集和一个包含100行的训练集,每个... ...]]
在您的数据框中,您具有“组”列,该列代表值“训练”和“测试”。ggplot理解您是用两个组代表一个直方图。您的第二个图表示同一网格上的两个不同的直方图,并且透明度(alpha)使它看起来像实际一样。
此外,也许您会喜欢这个: