2016-09-29 52 views
0

我想在ggplot2條形圖的右上角'註釋'文字,該文字包含x軸的字符和y軸的數值。我看到的所有文檔都是爲了註釋一個文本,x和y座標都必須給定數字值。ggplot anotate當x值爲字符時

下面是一個例子圖表: -

這是該數據幀

df1 <- data.frame(p=c("a","b","c","a","b","c"), 
        v=c(10,9,8,6,5,2), 
        u=c("aa","bb","cc","aa","bb","cc") 
       ) 

彙總數據幀

df2 <- df1 %>% select(p, v) %>% group_by(p) %>% summarise_each(funs(sum)) 

柱狀圖中

p <- ggplot(data = df2, aes(p, v, label = v)) + 
     geom_bar(stat = "identity", position = "dodge") + 
     geom_text(position = position_dodge(.9), vjust = -1, fontface = "bold", size = 5) 

p 
+0

夫婦的方式做到這一點!但是,這裏有一個很好的新的(對我來說)包https://cran.r-project.org/web/packages/cowplot/vignettes/introduction.html – infominer

+0

快速看一下URL顯示的例子 - 註釋,您仍然需要提供x和y軸數字座標。 – Antex

+0

那麼你必須告訴它在哪裏繪製文本。或者你希望它是自動的?只是說右上角? – infominer

回答

1

你應該能夠做我只需將該位置放入aes()即可。這爲我工作(除非我誤解你的意圖):

ggplot(data = df2, aes(p, v, label = v)) + 
    geom_bar(stat = "identity", position = "dodge") + 
    geom_text(position = position_dodge(.9), vjust = -1, fontface = "bold", size = 5) + 
    geom_text(aes(x = "c", y = 15, label = "Here I am")) 

enter image description here

+0

就是這樣!謝謝Mark Peterson! – Antex

+0

另一個問題是,當我在aes中設置'顏色'或'顏色'時 - 無論我給它選擇什麼顏色,它都會呈現'紅色'。這裏是語法 - geom_text(aes(x =「c」,y = 18,label =「我在這裏」,color =「darkblue」,size = 15,fontface =「bold」)) – Antex

+1

將顏色設置爲如果你只是想設置顏色,那麼'aes()'。 'aes'內部的東西被映射,在顏色的情況下映射到默認調色板。另一種方法是,如果你想在圖例中顯示顏色,就是使用'scale_color_identity'(或者,在'aes()'中設置col =「Annotation」'',然後使用'scale_color_manual(values = c(「 Annotation「=」darkblue「)') –

相關問題