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。

非常感谢任何可以提供帮助的人。

4

1 回答 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)
于 2013-06-04T14:27:25.480 回答