ggplot直方图显示额外的灰色条

3

我正在尝试通过变量 compage 显示这个直方图。我使用的代码如下:

hist.wrinko.age <- ggplot(ESSdata.oldage3, aes(wrinco2,fill=compage))
                        + theme(legend.position = "right")
                        + geom_bar(aes(y=..density..), binwidth=1, position="dodge")
                        + labs(x="WRINCO by age group", y = "Density")
                        + scale_x_continuous(breaks=seq(0, 10, 1)
                          )

它可以正常工作,但直方图看起来像这样:

histogram

基本上图例显示了2个变量,但直方图显示了3个。

我不知道第三条灰线是从哪里来的 - 我的代码有什么问题吗?


很难在没有看到任何数据的情况下做出判断。我尝试使用 diamonds 数据集重现您的图形:ggplot(subset(diamonds, color %in% c("D", "E")), aes(x = carat, fill=color)) 并结合您的其余绘图命令,但它看起来完全正常。您的数据是什么样子的?dput(head(ESSdata.oldage3, 20)) 可以提供更多信息。 - Gregor Thomas
compave向量应该只包含1或0。我刚刚检查了一下,0和1的总数不等于行的总数。不知道是否有一些异常值在其中。我该如何检查该列中是否有任何不是1或0的值? - LionelBlair
但如果存在异常值,图例中不会有更多的项吗? - LionelBlair
table(ESSdata.oldage3$compage, useNA = "always") 应该可以告诉你那里有什么。是的,这就是令人困惑的地方,还有颜色。使用默认填充颜色比例尺时,3种颜色应为红色、绿色和蓝色。 - Gregor Thomas
搞定了。谢谢@Gregor。 - LionelBlair
显示剩余3条评论
1个回答

1
当有数据要绘制(x和y值),但fill变量是NA时,会添加灰色条。
从您的数据中省略NA的最简单方法是使用na.omit函数。
ggplot(na.omit(ESSdata.oldage3), ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接