GGPLOT2直方图添加点

3

我正在尝试制作一个直方图,展示所有观测点中的一个子集。为了使其有意义,我需要给每个点上不同的颜色,并在图表上放置一个图例。但是我的问题是,我似乎无法在图表上显示比例尺。以下是我尝试过的示例。

subset <-1:8
results = data.frame(x_data = rnorm(5000),TestID=1:5000)
m <- ggplot(results,aes(x=x_data))
m+stat_bin(aes(y=..density..))+
stat_density(colour="blue", fill=NA)+
  geom_point(data = results[results$TestID %in% subset,], 
       aes(x = x_data, y = 0),  
       colour = as.factor(results$TestID[results$TestID %in% subset]),
       size = 5)+
scale_colour_brewer(type="seq", palette=3)

理想情况下,我希望点可以定位在密度线上(但我真的不确定如何实现,所以我将它们放置在 y = 0 上)。最紧急需要的是图例,它指示了子集中每个点对应的 TestID。
非常感谢能帮忙的任何人。
1个回答

3
这段话解决了你提出的第二个问题——如果你想要一个图例,就需要将该变量包含在审美之中,并将其映射到一个变量(在这个例子中是颜色)。所以你实际上只需要将 colour = as.factor(results$TestID[results$TestID %in% subset]) 移动到调用 aes() 中即可:
ggplot(results,aes(x=x_data)) + 
  stat_bin(aes(y=..density..))+
  stat_density(colour="blue", fill=NA)+
  geom_point(data = results[results$TestID %in% subset,], 
             aes(x = x_data, 
                 y = 0, 
                 colour = as.factor(results$TestID[results$TestID %in% subset])
                 ),
             size = 5) +
  scale_colour_brewer("Fancy title", type="seq", palette=3)

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