R 使用geom_文本在ggplot2中的单个面上注释文本

R 使用geom_文本在ggplot2中的单个面上注释文本,r,ggplot2,label,geom-text,R,Ggplot2,Label,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_g

使用下面的代码,我在每个面上获得文本,但是文本是叠加的:“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

new_df您是否可以直接标记刻面标题,而不是标记底角?你的例子表明,这可能是一个更好的解决方案。如果这适用于您的实际用例,您只需通过粘贴
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

new_df您需要将f列添加到标签图中,这样一旦应用了刻面,标签就位于指定的刻面上

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\u df非常感谢。事实上,我一直在寻找一种方法来区分方面标题和每个标题的特定文本。如果提供的答案之一解决了您的问题,那么请单击投票按钮下的复选标记来显示答案。