簡體   English   中英

使用 geom_text 在 ggplot2 中的單個方面注釋文本

[英]Annotating text on individual facet in ggplot2 using geom_text

使用以下代碼,我獲得了每個方面的文本,但文本是疊加的:“X1”和“X2”疊加在每個方面。 我的代碼中的問題在哪里?

R 代碼:

new_df <- data.frame(f = as.factor(rep(1:2, 15)), x = rnorm(30), y = runif(30))
g <- ggplot(data = new_df, aes(x = x, y = y)) + geom_point() 
g <- g + facet_grid(. ~ f)
g
label_graph <- data.frame(label = c("X1", "X2"))

g <- g + geom_text(data = label_graph,
                    mapping = aes(x = Inf, y = -Inf, label = label),
                    hjust = 1.1, vjust = -1.1)
g

您可以選擇直接使用刻面標題而不是標記底角嗎? 您的示例表明這可能是一個更好的解決方案。 如果這適用於您的實際用例,您可以通過粘貼X直接更改f列,您將獲得:

new_df <- data.frame(f = as.factor(paste0("X", rep(1:2, 15))), x = rnorm(30), y = runif(30))
g <- ggplot(data = new_df, aes(x = x, y = y)) + geom_point() 
g <- g + facet_grid(. ~ f)
g

分面標簽

您需要將列 f 添加到 label_graph 中,這樣一旦應用了構面,標簽就位於指定的構面上

new_df <- data.frame(f = as.factor(rep(1:2, 15)), x = rnorm(30), y = runif(30))
g <- ggplot(data = new_df, aes(x = x, y = y)) + geom_point() 
g <- g + facet_grid(. ~ f)
label_graph <- data.frame(label = c("X1", "X2"),f=factor(1:2))

g <- g + geom_text(data = label_graph,
                    mapping = aes(x = Inf, y = -Inf, label = label),
                    hjust = 1.1, vjust = -1.1)
g

在此處輸入圖像描述

您可以將標簽添加到原始數據中嗎?

new_df <- data.frame(f = as.factor(rep(1:2, 15)), x = rnorm(30), y = runif(30), label = c("X1","X2"))
g <- ggplot(data = new_df, aes(x = x, y = y)) + geom_point() 
g <- g + facet_grid(. ~ f)
g <- g+ geom_text(mapping = aes(x = Inf, y = -Inf, label = label),
               hjust = 1.1, vjust = -1.1)
g

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM