R ggplot直方图组显示两组总和

问题描述 投票:0回答:1

我试图在直方图中绘制测试和训练数据集的分布,发现有些奇怪:

背景:我有一个包含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)

其结果如下所示,对我来说更有意义。

我现在想知道,为什么第一次尝试与第二次尝试导致的情节不同。我在这里错过明显的东西吗?

The result of the code side by side

[我试图在直方图中绘制测试和训练数据集的分布,发现有些奇怪:背景:我有一个包含50行的测试集和一个包含100行的训练集,每个... ...]]

r ggplot2 histogram
1个回答
0
投票

在您的数据框中,您具有“组”列,该列代表值“训练”和“测试”。ggplot理解您是用两个组代表一个直方图。您的第二个图表示同一网格上的两个不同的直方图,并且透明度(alpha)使它看起来像实际一样。

此外,也许您会喜欢这个:

© www.soinside.com 2019 - 2024. All rights reserved.