如何在geom_point ggplot中删除一组点?

4

我有一个与绘图相关的问题。我想只在A组中显示圆点,而不是在每个名称下都显示圆点。这里是一个例子:

name <- c("a","b","c","d")
df <- data.frame(id = rep(1:5,3), 
             value = c(seq(50,58,2),seq(60,68,2),seq(70,78,2)),
             name = c(rep("A",5),rep("B",5),rep("C",5)),
             type = rep(c("a","b","c","d","r"),3))

df$name <- factor(df$name, levels = c("C","B","A"),ordered = TRUE)
ggplot(df, aes(id, value, fill = name,color = type))+
    geom_area( position = 'identity', linetype = 1, size = 1 ,colour="black") +
    geom_point(size = 8)+
    guides(fill = guide_legend(override.aes = list(colour = NULL, shape = NA)))

enter image description here


感谢你的编辑建议。但是,很遗憾它被审核员拒绝了。不过,我很高兴进行这次编辑,因为建议是你提出的,并且你的建议很有道理。你是否也能修改一下原来的图表和代码呢?那样一切就会保持一致了。 - jazzurro
给你!谢谢! - Nicolabo
根据您的想法已完成更新。前几天我遇到了aes.override。这是一个很好的提醒,让我重新温习我的知识。谢谢,Nicola. :) - jazzurro
1个回答

3
如果我理解问题正确,似乎你只需要在蓝色区域显示点。在这种情况下,您可以对数据进行子集处理,并将其用于 geom_point
ggplot(df, aes(id, value, fill = name,color = type))+
geom_area( position = 'identity', linetype = 1, size = 1 ,colour="black") +
geom_point(data = subset(df, name == "A"), size = 8) +
guides(fill = guide_legend(override.aes = list(colour = NULL, shape = NA)))

enter image description here


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