为什么声称此数据中的行在图中缺失并被删除,即使x-scale没有超出范围?我试图将xlim包括在内但没有成功。我在这里想念什么?这是图 Gp2(geom_point)未包含在图中。我使用的代码如下:
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))
这会发出警告信息: 删除了包含缺失值的6行(geom_point)。
答案 0 :(得分:0)
逐个运行代码我们可以很容易地发现scale_shape_manual
是罪魁祸首,在此之前的所有内容都可以找到。 (如果您已经制作了 minimal 示例,那么您很容易就会发现......)
您告诉ggplot
geom_point
的所有形状都应该是Gp2
,这是您映射的第二个形状。因此,它将查看values
中的第二个条目,并找到NA
。所以你自己告诉ggplot
它应该给所有点NA
形状。
(请注意,您在Gp1
中映射了形状geom_bar
,但geom_bar
并未采用这种美学。)