使用geom_text在ggplot2中的各个方面注释文本

问题描述 投票:2回答:3

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

非常感谢(这是我的第一篇文章!)

r ggplot2 label geom-text
3个回答
0
投票

您是否可以选择直接标记刻面标题而不是标记底角?您的示例表明这可能是一个更好的解决方案。如果这对您的实际用例有效,则可以直接通过粘贴f来直接更改X列,然后您会得到:

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

facetlabels


0
投票

您可以仅将标签添加到原始数据中吗?

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

enter image description here


0
投票

您需要将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
© www.soinside.com 2019 - 2024. All rights reserved.