2013-06-04 111 views
3

我正在嘗試生成一個直方圖,用於說明所有觀測直方圖上的觀察點(子集)。爲了使其具有意義,我需要以不同的方式着色每個點並在圖上放置一個圖例。我的問題是,我似乎無法在劇情上出現一個規模。下面是我嘗試過的一個例子。爲GGPLOT2直方圖添加點

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。

非常感謝任何可以幫助的人。

回答

2

這解決了你的第二點 - 如果你想要一個圖例,你需要包含該變量作爲審美,並將其映射到變量(在這種情況下是顏色)。所以,你真正需要做的是移動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) 
+0

非常感謝。這似乎解決了我的主要問題。 – user2111827