R 未删除ggplot中geom_点中缺失的行

R 未删除ggplot中geom_点中缺失的行,r,ggplot2,R,Ggplot2,为什么即使x标度未超出范围,此数据中的行仍会在绘图中丢失和删除?我尝试过包含xlim,但没有成功。我错过了什么?这是图Gp2(几何点)未包含在绘图中。我使用的代码如下: df1 <- data.frame(x=c(2,4:8), y=c(1.030928,4.123711,3.092784,8.247423,9.278351,4.123711)) df2 <- data.frame(x=3:8,

为什么即使x标度未超出范围,此数据中的行仍会在绘图中丢失和删除?我尝试过包含xlim,但没有成功。我错过了什么?这是图Gp2(几何点)未包含在绘图中。我使用的代码如下:

        df1 <- data.frame(x=c(2,4:8),
                          y=c(1.030928,4.123711,3.092784,8.247423,9.278351,4.123711))
        df2 <- data.frame(x=3:8,
                          y=c(1.700680,1.360544,4.081633,3.401361,3.061224,9.183673))

         require(ggplot2)

         ggplot(NULL, aes(x=x, y=y)) +
            geom_bar(data = df1, aes(fill="Gp1", shape="Gp1"),
                     stat= "identity") +
            geom_point(data = df2, stat= "identity", size = 5,
                       aes(shape="Gp2", fill="Gp2")) +
            ylab("%") + xlab("grades") +
            ggtitle("Test figure") +
            scale_shape_manual(values = c(23, NA)) +
            scale_fill_manual(values = c("#6699CC","#000099")) +
            guides(fill = guide_legend(reverse = TRUE),
                   shape = guide_legend(override.aes = list(shape=0), reverse = TRUE)) 

df1逐段运行您的代码我们很容易发现
scale\u shape\u manual
是这里的罪魁祸首,之前的一切都可以找到。(如果你举一个简单的例子,你会很容易发现……)

您已经告诉
ggplot
geom_point
的所有形状都应该是
Gp2
,这是您映射的第二个形状。因此,它将查看
values
中的第二个条目,发现有一个
NA
。因此,您自己告诉
ggplot
,它应该为所有点提供
NA
形状

(请注意,您在
geom_-bar
中映射了形状
Gp1
,但
geom_-bar
并不具有这种美感。)