2013-04-07 92 views
16

我只是想爲ggplot2生成的每個數字面板添加註釋; (a),(b),(c)等簡單的標籤。有沒有簡單的方法來做到這一點?ggplot2:geom_text()with facet_grid()?

+3

你有一個圖片作爲一個例子,你可以發佈? – 2013-04-07 20:14:22

+0

對不起,我需要弄清楚如何發佈圖片... – hatmatrix 2013-04-07 22:02:29

回答

27

來源:https://groups.google.com/forum/?fromgroups=#!topic/ggplot2/RL8M7Ut5EpU您可以使用以下方法:

library(ggplot2) 
x <-runif(9, 0, 125) 
data <- as.data.frame(x) 
data$y <- runif(9, 0, 125) 
data$yy <- factor(c("a","b","c")) 

ggplot(data, aes(x, y)) + 
    geom_point(shape = 2) + 
    facet_grid(~yy) + 
    geom_text(aes(x, y, label=lab), 
     data=data.frame(x=60, y=Inf, lab=c("this","is","the way"), 
      yy=letters[1:3]), vjust=1) 

這應該給你:

+6

+1,但是你能否提供更多的上下文來了解它的工作原理?現在它只是一段代碼和一張圖片。 – 2013-04-07 20:30:09

+3

當然。基礎'ggplot'調用具有數據框和'geom_point''facet_grid'構面的實際繪圖數據。關鍵是爲'geom_text'設置一個新的數據框(在代碼片段中動態創建,但可以在'ggplot'塊外部創建並引用數據框),並將標籤元素的數量與方面的數量。您可以對'geom_text'使用多次調用,以在各個構面之間放置多個不同的標籤。他們會被依次引用,所以要注意這一點。 – hrbrmstr 2013-04-07 20:53:12

+1

如果您想要繪製多個標籤,則不需要多次調用geom_text,只需將行添加到具有適當文本和facet_grid變量的data.frame。 – 2013-04-07 21:06:20

5

基本上,您將創建一個data.frame,其中包含帶文本的列的文本以及包含用於facet_grid的變量的列。然後,您可以簡單地將geom_textdata.frame相加。請參閱geom_text的文檔以獲取關於文本放置等的更多詳細信息。

相關問題